Function at 0x4a3a60
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x6c
push 0xffffffffffffffff
push 0x5ffb5b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3c
push ebx
push esi
mov eax, 3
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp + 0x5c], 0
mov byte [ebp + 0x67], 0
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x58], eax
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4a3ab6
push 0x80004005
call fcn.00401480
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp + 0x68], eax
mov esi, dword [ebp + 0x78]
mov dword [ebp - 4], 0
mov edi, 4
mov ebx, dword [ebp + 0x44]
lea ecx, [ebp + 0x68]
push ecx
mov ecx, dword [ebp + 0x74]
call fcn.00494eb0
test eax, eax
je 0x4a4837
lea ecx, [ebp + 0x68]
call fcn.0045a7a0
mov ecx, eax
call fcn.0045a7f0
mov ecx, dword [ebp + 0x68]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x4a3ad7
jge 0x4a3b10
push 0x80070057
call fcn.00401480
movzx eax, word [ecx]
cmp ax, 0x3b
je 0x4a3ad7
call fcn.005a2e2e
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4a3b33
push 0x80004005
call fcn.00401480
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [ebp + 0x60], eax
push 0x3a
lea ecx, [ebp + 0x68]
push ecx
lea edx, [ebp - 0x18]
push edx
mov byte [ebp - 4], 1
call fcn.0049c050
add esp, 0xc
push eax
lea ecx, [ebp + 0x60]
mov byte [ebp - 4], 2
call fcn.004189d0
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a3b88
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp + 0x60]
call fcn.0049a860
mov eax, dword [ebp + 0x60]
mov ecx, str._script_info_
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4a3bbc
test dx, dx
je 0x4a3bb8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4a3bbc
add eax, edi
add ecx, edi
test dx, dx
jne 0x4a3b98
xor eax, eax
jmp 0x4a3bc1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4a3bd3
mov byte [ebp + 0x67], 1
jmp 0x4a480b
lea ecx, [ebp + 0x60]
push str.playresx
push ecx
call fcn.00499060
add esp, 8
test al, al
je 0x4a3c73
lea edx, [ebp + 0x68]
push 0x2c
push edx
mov byte [ebp - 4], 3
call fcn.0049dfe0
add esp, 8
cmp dword [esi + 0x3c], 0
mov dword [esi + 0x38], eax
mov dword [ebp - 4], 1
jg 0x4a480b
cmp eax, 0x500
jne 0x4a3c26
mov eax, 0x400
mov dword [esi + 0x3c], eax
jmp 0x4a480b
lea eax, [eax + eax*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esi + 0x3c], eax
jmp 0x4a480b
lea ecx, [ebp + 0x60]
call fcn.004120a0
lea ecx, [ebp + 0x68]
call fcn.004120a0
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
add ebp, 0x6c
mov esp, ebp
pop ebp
ret
lea eax, [ebp + 0x60]
push str.playresy
push eax
call fcn.00499060
add esp, 8
test al, al
je 0x4a3cf2
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
mov byte [ebp - 4], 5
call fcn.0049dfe0
add esp, 8
cmp dword [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [ebp - 4], 1
jg 0x4a480b
cmp eax, 0x400
jne 0x4a3cc2
mov eax, 0x500
mov dword [esi + 0x38], eax
jmp 0x4a480b
lea ecx, [eax*4]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x38], eax
jmp 0x4a480b
lea edx, [ebp + 0x60]
push str.wrapstyle
push edx
call fcn.00499060
add esp, 8
test al, al
je 0x4a3d38
lea eax, [ebp + 0x68]
push 0x2c
push eax
mov byte [ebp - 4], 7
call fcn.0049dfe0
add esp, 8
mov dword [esi + 0x40], eax
mov dword [ebp - 4], 1
jmp 0x4a480b
lea edx, [ebp + 0x60]
push str.scripttype
push edx
call fcn.00499060
add esp, 8
test al, al
je 0x4a3e5e
mov eax, dword [ebp + 0x68]
cmp dword [eax - 0xc], edi
jl 0x4a3d82
push edi
lea ecx, [ebp - 0x28]
push ecx
lea ecx, [ebp + 0x68]
call fcn.00499b10
mov eax, dword [eax]
or dword [ebp + 0x5c], 1
push str.4.00
push eax
call fcn.005c3fa9
add esp, 8
test eax, eax
jne 0x4a3d82
mov bl, 1
jmp 0x4a3d84
xor bl, bl
test byte [ebp + 0x5c], 1
je 0x4a3d96
and dword [ebp + 0x5c], 0xfffffffe
lea ecx, [ebp - 0x28]
call fcn.004120a0
test bl, bl
je 0x4a3da5
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x48], edi
jmp 0x4a480b
mov edx, dword [ebp + 0x68]
cmp dword [edx - 0xc], 5
jl 0x4a3dd8
push 5
lea eax, [ebp + 0x24]
push eax
lea ecx, [ebp + 0x68]
call fcn.00499b10
mov eax, dword [eax]
or dword [ebp + 0x5c], 2
push 0x6282c0
push eax
call fcn.005c3fa9
add esp, 8
test eax, eax
jne 0x4a3dd8
mov bl, 1
jmp 0x4a3dda
xor bl, bl
test byte [ebp + 0x5c], 2
je 0x4a3dec
and dword [ebp + 0x5c], 0xfffffffd
lea ecx, [ebp + 0x24]
call fcn.004120a0
test bl, bl
je 0x4a3e00
mov eax, 5
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x48], eax
jmp 0x4a480b
mov ecx, dword [ebp + 0x68]
cmp dword [ecx - 0xc], 6
jl 0x4a3e32
push 6
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp + 0x68]
call fcn.00499b10
mov eax, dword [eax]
or dword [ebp + 0x5c], edi
push 0x6282b0
push eax
call fcn.005c3fa9
add esp, 8
test eax, eax
jne 0x4a3e32
mov bl, 1
jmp 0x4a3e34
xor bl, bl
test byte [ebp + 0x5c], 4
je 0x4a3e46
and dword [ebp + 0x5c], 0xfffffffb
lea ecx, [ebp - 0x2c]
call fcn.004120a0
test bl, bl
je 0x4a480b
mov eax, 6
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x48], eax
jmp 0x4a480b
lea eax, [ebp + 0x60]
push str.collisions
push eax
call fcn.00499060
add esp, 8
test al, al
je 0x4a3efd
push 0x2c
lea ecx, [ebp + 0x68]
push ecx
lea edx, [ebp - 0x34]
push edx
call fcn.0049c050
add esp, 0xc
push eax
lea ecx, [ebp + 0x68]
mov byte [ebp - 4], 9
call fcn.004189d0
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 1
call fcn.004120a0
lea ecx, [ebp + 0x68]
call fcn.0049a860
mov eax, dword [ebp + 0x68]
cmp dword [eax - 0xc], 0
jge 0x4a3ec5
xor ecx, ecx
or eax, 0xffffffff
test eax, eax
setge cl
mov dword [esi + 0x44], ecx
jmp 0x4a480b
push str.reverse
push eax
call fcn.005c06f5
add esp, 8
test eax, eax
jne 0x4a3ee9
xor ecx, ecx
or eax, 0xffffffff
test eax, eax
setge cl
mov dword [esi + 0x44], ecx
jmp 0x4a480b
sub eax, dword [ebp + 0x68]
xor ecx, ecx
sar eax, 1
test eax, eax
setge cl
mov dword [esi + 0x44], ecx
jmp 0x4a480b
lea edx, [ebp + 0x60]
push str.scaledborderandshadow
push edx
call fcn.00499060
add esp, 8
test al, al
je 0x4a3f96
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp + 0x20]
push ecx
call fcn.0049c050
add esp, 0xc
push eax
lea ecx, [ebp + 0x68]
mov byte [ebp - 4], 0xa
call fcn.004189d0
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 1
call fcn.004120a0
lea ecx, [ebp + 0x68]
call fcn.0049a860
mov eax, dword [ebp + 0x68]
cmp dword [eax - 0xc], 0
jge 0x4a3f62
or eax, 0xffffffff
test eax, eax
setge dl
mov byte [esi + 0x48], dl
jmp 0x4a480b
push 0x628254
push eax
call fcn.005c06f5
add esp, 8
test eax, eax
jne 0x4a3f84
or eax, 0xffffffff
test eax, eax
setge dl
mov byte [esi + 0x48], dl
jmp 0x4a480b
sub eax, dword [ebp + 0x68]
sar eax, 1
test eax, eax
setge dl
mov byte [esi + 0x48], dl
jmp 0x4a480b
lea eax, [ebp + 0x60]
push str._v4_styles_
push eax
call fcn.00499060
add esp, 8
test al, al
je 0x4a3fb7
mov byte [ebp + 0x67], 1
mov dword [ebp + 0x58], edi
jmp 0x4a480b
lea ecx, [ebp + 0x60]
push 0x628220
push ecx
call fcn.00499060
add esp, 8
test al, al
je 0x4a3fdc
mov byte [ebp + 0x67], 1
mov dword [ebp + 0x58], 5
jmp 0x4a480b
lea edx, [ebp + 0x60]
push 0x628204
push edx
call fcn.00499060
add esp, 8
test al, al
je 0x4a4001
mov byte [ebp + 0x67], 1
mov dword [ebp + 0x58], 6
jmp 0x4a480b
lea eax, [ebp + 0x60]
push str.style
push eax
call fcn.00499060
add esp, 8
test al, al
je 0x4a4432
push 0xc0
call fcn.0059b02f
add esp, 4
mov dword [ebp + 0x4c], eax
test eax, eax
mov byte [ebp - 4], 0xb
je 0x4a403d
mov ecx, eax
call fcn.004a1210
mov esi, eax
jmp 0x4a403f
xor esi, esi
test esi, esi
mov byte [ebp - 4], 1
mov dword [ebp + 0x40], esi
je 0x4a3c4d
lea ecx, [ebp + 0x3c]
call fcn.00401a30
push ecx
mov ecx, esp
mov dword [ebp + 0x4c], esp
push 0x2c
lea edx, [ebp + 0x68]
push edx
push ecx
mov byte [ebp - 4], 0xd
call fcn.0049c050
lea eax, [ebp + 0x28]
add esp, 0xc
push eax
call fcn.00494560
add esp, 8
push eax
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0xe
call fcn.004044c0
lea ecx, [ebp + 0x28]
mov byte [ebp - 4], 0xd
call fcn.00401aa0
push ecx
mov ecx, esp
mov dword [ebp + 0x4c], esp
push 0x2c
lea edx, [ebp + 0x68]
push edx
push ecx
call fcn.0049c050
lea eax, [ebp + 0x18]
add esp, 0xc
push eax
call fcn.00494560
add esp, 8
push eax
lea ecx, [esi + 0x50]
mov byte [ebp - 4], 0xf
call fcn.00404700
lea ecx, [ebp + 0x18]
mov byte [ebp - 4], 0xd
call fcn.00401aa0
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
call fcn.0049c140
fstp qword [esi + 0x58]
add esp, 8
xor edi, edi
cmp edi, 4
push 0x2c
jge 0x4a40fd
lea edx, [ebp + 0x68]
push edx
call fcn.0049dfe0
add esp, 8
mov dword [esi + edi*4 + 0x38], eax
add edi, 1
jmp 0x4a40e1
lea eax, [ebp + 0x68]
push eax
call fcn.0049dfe0
add esp, 8
neg eax
sbb eax, eax
and eax, 0x12c
lea ecx, [ebp + 0x68]
add eax, 0x190
push 0x2c
push ecx
mov dword [esi + 0x78], eax
call fcn.0049dfe0
mov edi, dword [ebp + 0x58]
add esp, 8
test eax, eax
setne dl
cmp edi, 5
mov byte [esi + 0x7c], dl
jl 0x4a41ab
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.0049dfe0
add esp, 8
test eax, eax
lea edx, [ebp + 0x68]
setne cl
push 0x2c
push edx
mov byte [esi + 0x7d], cl
call fcn.0049dfe0
add esp, 8
test eax, eax
lea ecx, [ebp + 0x68]
setne al
push 0x2c
push ecx
mov byte [esi + 0x7e], al
call fcn.0049c140
fstp qword [esi + 0x60]
add esp, 8
lea edx, [ebp + 0x68]
push 0x2c
push edx
call fcn.0049c140
fstp qword [esi + 0x68]
add esp, 8
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.0049c140
fstp qword [esi + 0x70]
add esp, 8
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
call fcn.0049c140
fstp qword [esi + 0x90]
add esp, 8
cmp edi, 4
jl 0x4a41c1
lea edx, [ebp + 0x68]
push 0x2c
push edx
call fcn.0049dfe0
add esp, 8
mov dword [esi + 0x14], eax
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.0049c140
fst qword [esi + 0x20]
add esp, 8
fstp qword [esi + 0x18]
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
call fcn.0049c140
fst qword [esi + 0x30]
add esp, 8
fstp qword [esi + 0x28]
lea edx, [ebp + 0x68]
push 0x2c
push edx
call fcn.0049dfe0
add esp, 8
mov dword [esi + 0x10], eax
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.0049dfe0
add esp, 8
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
mov dword [esi], eax
call fcn.0049dfe0
add esp, 8
lea edx, [ebp + 0x68]
push 0x2c
push edx
mov dword [esi + 8], eax
call fcn.0049dfe0
add esp, 8
cmp edi, 6
mov dword [esi + 0xc], eax
mov dword [esi + 4], eax
jl 0x4a4245
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.0049dfe0
add esp, 8
mov dword [esi + 0xc], eax
cmp edi, 4
jg 0x4a425d
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
call fcn.0049dfe0
mov ebx, eax
add esp, 8
mov dword [ebp + 0x44], ebx
lea edx, [ebp + 0x68]
push 0x2c
push edx
call fcn.0049dfe0
add esp, 8
cmp edi, 6
mov dword [esi + 0x4c], eax
jl 0x4a4287
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.0049dfe0
add esp, 8
mov dword [esi + 0xb8], eax
cmp edi, 4
jg 0x4a42be
cmp ebx, 0xff
mov ecx, dword [esi + 0x44]
mov dword [esi + 0x40], ecx
jge 0x4a42b3
test ebx, ebx
jg 0x4a42a3
xor ebx, ebx
mov dword [ebp + 0x44], ebx
xor eax, eax
cmp eax, 3
jge 0x4a42ba
mov byte [eax + esi + 0x48], bl
add eax, 1
jmp 0x4a42a5
mov ebx, 0xff
jmp 0x4a42a0
mov byte [esi + 0x4b], 0x80
cmp edi, 5
jl 0x4a4324
xor eax, eax
cmp eax, 4
jge 0x4a42dc
mov dl, byte [esi + eax*4 + 0x3b]
mov byte [eax + esi + 0x48], dl
mov byte [esi + eax*4 + 0x3b], 0
add eax, 1
jmp 0x4a42c5
cmp edi, 5
jl 0x4a4324
fldz
fcom qword [esi + 0x60]
fnstsw ax
test ah, 5
jp 0x4a42f2
fld qword [esi + 0x60]
jmp 0x4a42f4
fld st(0)
fstp qword [esi + 0x60]
fcom qword [esi + 0x68]
fnstsw ax
test ah, 5
jp 0x4a4306
fld qword [esi + 0x68]
jmp 0x4a4308
fld st(0)
fstp qword [esi + 0x68]
fcom qword [esi + 0x70]
fnstsw ax
test ah, 5
jp 0x4a431d
fld qword [esi + 0x70]
fstp qword [esi + 0x70]
jmp 0x4a4326
fld st(0)
fstp qword [esi + 0x70]
jmp 0x4a4326
fldz
mov eax, dword [esi + 0x14]
fst qword [esi + 0xa0]
cmp eax, 1
fst qword [esi + 0x98]
jne 0x4a433e
xor eax, eax
jmp 0x4a4348
xor ecx, ecx
cmp eax, 3
sete cl
mov eax, ecx
fcom qword [esi + 0x18]
mov dword [esi + 0x14], eax
fnstsw ax
test ah, 5
jp 0x4a435a
fld qword [esi + 0x18]
jmp 0x4a435c
fld st(0)
fstp qword [esi + 0x18]
fcom qword [esi + 0x20]
fnstsw ax
test ah, 5
jp 0x4a436e
fld qword [esi + 0x20]
jmp 0x4a4370
fld st(0)
fstp qword [esi + 0x20]
fcom qword [esi + 0x28]
fnstsw ax
test ah, 5
jp 0x4a4382
fld qword [esi + 0x28]
jmp 0x4a4384
fld st(0)
fstp qword [esi + 0x28]
fcom qword [esi + 0x30]
fnstsw ax
test ah, 5
jp 0x4a4396
fstp st(0)
fld qword [esi + 0x30]
cmp edi, 4
fstp qword [esi + 0x30]
jg 0x4a43bf
mov eax, dword [esi + 0x10]
test al, 4
je 0x4a43ad
and eax, 3
add eax, 6
jmp 0x4a43bc
test al, 8
je 0x4a43b9
and eax, 3
add eax, 3
jmp 0x4a43bc
and eax, 3
mov dword [esi + 0x10], eax
push 0x2a
lea ecx, [ebp + 0x3c]
call fcn.00429760
push esi
push ecx
lea edx, [ebp + 0x3c]
mov ecx, esp
mov dword [ebp + 0x4c], esp
push edx
call fcn.00404170
mov ecx, dword [ebp + 0x78]
call fcn.004a30c0
lea ecx, [ebp + 0x3c]
call fcn.00401aa0
mov esi, dword [ebp + 0x78]
mov dword [ebp - 4], 1
mov edi, 4
jmp 0x4a480b
lea ecx, [ebp + 0x60]
push str._events_
push ecx
call fcn.00499060
add esp, 8
test al, al
je 0x4a4450
mov byte [ebp + 0x67], 1
jmp 0x4a480b
lea edx, [ebp + 0x60]
push str.dialogue
push edx
call fcn.00419950
add esp, 8
test al, al
je 0x4a47ea
lea ecx, [ebp + 0x50]
mov dword [ebp + 0x40], 0
call fcn.00401a30
lea ecx, [ebp + 0x34]
call fcn.00401a30
lea ecx, [ebp + 0x54]
call fcn.00401a30
mov esi, dword [ebp + 0x48]
cmp esi, edi
mov byte [ebp - 4], 0x14
jg 0x4a44bb
push 0x3d
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x38]
push ecx
call fcn.0049c050
add esp, 0xc
lea ecx, [ebp - 0x38]
call fcn.004120a0
lea edx, [ebp + 0x68]
push 0x2c
push edx
call fcn.0049dfe0
add esp, 8
cmp esi, 5
jl 0x4a44d1
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.0049dfe0
add esp, 8
mov dword [ebp + 0x40], eax
lea ecx, [ebp + 0x68]
push 0x3a
push ecx
call fcn.0049dfe0
add esp, 8
lea edx, [ebp + 0x68]
push 0x3a
push edx
mov dword [ebp - 0x14], eax
call fcn.0049dfe0
add esp, 8
mov dword [ebp - 0x1c], eax
lea eax, [ebp + 0x68]
push 0x2e
push eax
call fcn.0049dfe0
add esp, 8
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
mov dword [ebp - 0x24], eax
call fcn.0049dfe0
add esp, 8
lea edx, [ebp + 0x68]
push 0x3a
push edx
mov dword [ebp + 0x4c], eax
call fcn.0049dfe0
add esp, 8
mov dword [ebp + 0x1c], eax
lea eax, [ebp + 0x68]
push 0x3a
push eax
call fcn.0049dfe0
add esp, 8
lea ecx, [ebp + 0x68]
push 0x2e
push ecx
mov dword [ebp + 0x14], eax
call fcn.0049dfe0
add esp, 8
lea edx, [ebp + 0x68]
push 0x2c
push edx
mov dword [ebp + 0xc], eax
call fcn.0049dfe0
add esp, 8
push ecx
mov dword [ebp + 4], eax
mov eax, esp
mov dword [ebp + 0x38], esp
push 0x2c
lea ecx, [ebp + 0x68]
push ecx
push eax
call fcn.0049c050
lea edx, [ebp + 0x10]
add esp, 0xc
push edx
call fcn.00494560
add esp, 8
push eax
lea ecx, [ebp + 0x50]
mov byte [ebp - 4], 0x15
call fcn.004044c0
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x14
call fcn.00401aa0
push ecx
mov eax, esp
mov dword [ebp + 0x38], esp
push 0x2c
lea ecx, [ebp + 0x68]
push ecx
push eax
call fcn.0049c050
add esp, 0xc
lea edx, [ebp - 0x20]
push edx
call fcn.00494560
add esp, 8
push eax
lea ecx, [ebp + 0x34]
mov byte [ebp - 4], 0x16
call fcn.004044c0
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x14
call fcn.00401aa0
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.0049dfe0
add esp, 8
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
mov dword [ebp + 0x2c], eax
call fcn.0049dfe0
add esp, 8
lea edx, [ebp + 0x68]
push 0x2c
push edx
mov dword [ebp + 0x38], eax
call fcn.0049dfe0
add esp, 8
cmp dword [ebp + 0x48], 6
mov edi, eax
mov dword [ebp - 0x44], edi
jl 0x4a4618
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.0049dfe0
add esp, 8
mov edi, eax
push ecx
mov ecx, esp
mov dword [ebp + 0x30], esp
push 0x2c
lea edx, [ebp + 0x68]
push edx
push ecx
call fcn.0049c050
lea eax, [ebp + 8]
add esp, 0xc
push eax
call fcn.00494560
add esp, 8
push eax
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 0x17
call fcn.004044c0
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x14
call fcn.00401aa0
mov ecx, dword [ebp + 0x54]
mov eax, dword [ecx - 0xc]
mov edx, dword [ebp + 0x68]
mov ecx, dword [edx - 0xc]
cmp eax, ecx
mov esi, eax
jl 0x4a4666
mov esi, ecx
push ecx
mov eax, esp
mov dword [ebp + 0x30], esp
push esi
push eax
lea ecx, [ebp + 0x68]
call fcn.00458780
lea ecx, [ebp]
push ecx
call fcn.00494560
add esp, 8
mov ebx, eax
push esi
lea edx, [ebp - 0x30]
push edx
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 0x18
call fcn.0042ebc0
push ebx
push eax
call fcn.00429550
add esp, 8
lea ecx, [ebp - 0x30]
mov bl, al
call fcn.00401aa0
lea ecx, [ebp]
mov byte [ebp - 4], 0x14
call fcn.00401aa0
test bl, bl
je 0x4a46c1
lea ecx, [ebp + 0x54]
call fcn.00401950
push 0x2a
lea ecx, [ebp + 0x50]
call fcn.00429760
mov eax, dword [ebp + 0x50]
push 0x6272bc
push eax
call fcn.005c0d42
add esp, 8
test eax, eax
jne 0x4a46ed
push 0x6272bc
lea ecx, [ebp + 0x50]
call fcn.00401e80
mov ecx, dword [ebp + 0x40]
mov edx, dword [ebp + 0x2c]
push 0xffffffffffffffff
push ecx
mov ecx, dword [ebp - 0x44]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [ebp + 0x38]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
push ecx
mov dword [eax + 0xc], edi
lea eax, [ebp + 0x54]
mov ecx, esp
mov dword [ebp + 0x30], esp
push eax
call fcn.00404170
push ecx
lea edx, [ebp + 0x34]
mov ecx, esp
mov dword [ebp + 0x38], esp
push edx
mov byte [ebp - 4], 0x19
call fcn.00404170
push ecx
lea eax, [ebp + 0x50]
mov ecx, esp
mov dword [ebp + 0x2c], esp
push eax
mov byte [ebp - 4], 0x1a
call fcn.00404170
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [edx + ecx*4]
mov edx, dword [ebp + 0xc]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [edx + ecx*4]
imul eax, eax, 0x64
add eax, dword [ebp + 4]
mov edx, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
add eax, eax
push eax
mov eax, dword [ebp - 0x14]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [edx + ecx*4]
mov edx, dword [ebp - 0x24]
mov ecx, eax
shl ecx, 4
sub ecx, eax
lea eax, [edx + ecx*4]
mov ecx, dword [ebp + 0x74]
imul eax, eax, 0x64
add eax, dword [ebp + 0x4c]
mov byte [ebp - 4], 0x1b
lea eax, [eax + eax*4]
add eax, eax
push eax
call fcn.00494020
lea edx, [ebp + 0x68]
push eax
push ecx
mov ecx, esp
mov dword [ebp + 0x4c], esp
push edx
call fcn.00417db0
mov ecx, dword [ebp + 0x78]
mov byte [ebp - 4], 0x14
call fcn.0049e850
lea ecx, [ebp + 0x54]
call fcn.00401aa0
lea ecx, [ebp + 0x34]
call fcn.00401aa0
lea ecx, [ebp + 0x50]
call fcn.00401aa0
mov esi, dword [ebp + 0x78]
mov dword [ebp - 4], 1
mov edi, 4
jmp 0x4a480b
lea eax, [ebp + 0x60]
push str.fontname
push eax
call fcn.00499060
add esp, 8
test al, al
je 0x4a480b
mov ecx, dword [ebp + 0x74]
push ecx
call fcn.0049e260
add esp, 4
mov eax, dword [ebp + 0x60]
add eax, 0xfffffff0
mov byte [ebp - 4], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4a3ad4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4a3ad4
mov eax, dword [ebp + 0x68]
add eax, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a485d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp + 0x67]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
add ebp, 0x6c
mov esp, ebp
pop ebp
ret