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

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x6c
push 0xffffffffffffffff
push 0x61cd1b
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.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4b43b6
push 0x80004005
call fcn.00401470
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.004a5df0
test eax, eax
je 0x4b5137
lea ecx, [ebp + 0x68]
call fcn.00469280
mov ecx, eax
call fcn.004692d0
mov ecx, dword [ebp + 0x68]
mov eax, dword [ecx - 0xc]
test eax, eax
je 0x4b43d7
jge 0x4b4410
push 0x80070057
call fcn.00401470
movzx eax, word [ecx]
cmp ax, 0x3b
je 0x4b43d7
call fcn.005bc43d
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4b4433
push 0x80004005
call fcn.00401470
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.004aca00
add esp, 0xc
push eax
lea ecx, [ebp + 0x60]
mov byte [ebp - 4], 2
call fcn.0041fb20
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 0x4b4488
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [ebp + 0x60]
call fcn.004ab420
mov eax, dword [ebp + 0x60]
mov ecx, str._script_info_
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4b44bc
test dx, dx
je 0x4b44b8
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4b44bc
add eax, edi
add ecx, edi
test dx, dx
jne 0x4b4498
xor eax, eax
jmp 0x4b44c1
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
je 0x4b44d3
mov byte [ebp + 0x67], 1
jmp 0x4b510b
lea ecx, [ebp + 0x60]
push str.playresx
push ecx
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b4573
lea edx, [ebp + 0x68]
push 0x2c
push edx
mov byte [ebp - 4], 3
call fcn.004ae950
add esp, 8
cmp dword [esi + 0x3c], 0
mov dword [esi + 0x38], eax
mov dword [ebp - 4], 1
jg 0x4b510b
cmp eax, 0x500
jne 0x4b4526
mov eax, 0x400
mov dword [esi + 0x3c], eax
jmp 0x4b510b
lea eax, [eax + eax*2]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [esi + 0x3c], eax
jmp 0x4b510b
lea ecx, [ebp + 0x60]
call fcn.004194a0
lea ecx, [ebp + 0x68]
call fcn.004194a0
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.004a9e30
add esp, 8
test al, al
je 0x4b45f2
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
mov byte [ebp - 4], 5
call fcn.004ae950
add esp, 8
cmp dword [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [ebp - 4], 1
jg 0x4b510b
cmp eax, 0x400
jne 0x4b45c2
mov eax, 0x500
mov dword [esi + 0x38], eax
jmp 0x4b510b
lea ecx, [eax*4]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi + 0x38], eax
jmp 0x4b510b
lea edx, [ebp + 0x60]
push str.wrapstyle
push edx
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b4638
lea eax, [ebp + 0x68]
push 0x2c
push eax
mov byte [ebp - 4], 7
call fcn.004ae950
add esp, 8
mov dword [esi + 0x40], eax
mov dword [ebp - 4], 1
jmp 0x4b510b
lea edx, [ebp + 0x60]
push str.scripttype
push edx
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b475e
mov eax, dword [ebp + 0x68]
cmp dword [eax - 0xc], edi
jl 0x4b4682
push edi
lea ecx, [ebp - 0x28]
push ecx
lea ecx, [ebp + 0x68]
call fcn.004aa710
mov eax, dword [eax]
or dword [ebp + 0x5c], 1
push str.4.00
push eax
call fcn.005dea2e
add esp, 8
test eax, eax
jne 0x4b4682
mov bl, 1
jmp 0x4b4684
xor bl, bl
test byte [ebp + 0x5c], 1
je 0x4b4696
and dword [ebp + 0x5c], 0xfffffffe
lea ecx, [ebp - 0x28]
call fcn.004194a0
test bl, bl
je 0x4b46a5
mov dword [ebp + 0x58], edi
mov dword [ebp + 0x48], edi
jmp 0x4b510b
mov edx, dword [ebp + 0x68]
cmp dword [edx - 0xc], 5
jl 0x4b46d8
push 5
lea eax, [ebp + 0x24]
push eax
lea ecx, [ebp + 0x68]
call fcn.004aa710
mov eax, dword [eax]
or dword [ebp + 0x5c], 2
push 0x647510
push eax
call fcn.005dea2e
add esp, 8
test eax, eax
jne 0x4b46d8
mov bl, 1
jmp 0x4b46da
xor bl, bl
test byte [ebp + 0x5c], 2
je 0x4b46ec
and dword [ebp + 0x5c], 0xfffffffd
lea ecx, [ebp + 0x24]
call fcn.004194a0
test bl, bl
je 0x4b4700
mov eax, 5
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x48], eax
jmp 0x4b510b
mov ecx, dword [ebp + 0x68]
cmp dword [ecx - 0xc], 6
jl 0x4b4732
push 6
lea edx, [ebp - 0x2c]
push edx
lea ecx, [ebp + 0x68]
call fcn.004aa710
mov eax, dword [eax]
or dword [ebp + 0x5c], edi
push 0x647500
push eax
call fcn.005dea2e
add esp, 8
test eax, eax
jne 0x4b4732
mov bl, 1
jmp 0x4b4734
xor bl, bl
test byte [ebp + 0x5c], 4
je 0x4b4746
and dword [ebp + 0x5c], 0xfffffffb
lea ecx, [ebp - 0x2c]
call fcn.004194a0
test bl, bl
je 0x4b510b
mov eax, 6
mov dword [ebp + 0x58], eax
mov dword [ebp + 0x48], eax
jmp 0x4b510b
lea eax, [ebp + 0x60]
push str.collisions
push eax
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b47fd
push 0x2c
lea ecx, [ebp + 0x68]
push ecx
lea edx, [ebp - 0x34]
push edx
call fcn.004aca00
add esp, 0xc
push eax
lea ecx, [ebp + 0x68]
mov byte [ebp - 4], 9
call fcn.0041fb20
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 1
call fcn.004194a0
lea ecx, [ebp + 0x68]
call fcn.004ab420
mov eax, dword [ebp + 0x68]
cmp dword [eax - 0xc], 0
jge 0x4b47c5
xor ecx, ecx
or eax, 0xffffffff
test eax, eax
setge cl
mov dword [esi + 0x44], ecx
jmp 0x4b510b
push str.reverse
push eax
call fcn.005db725
add esp, 8
test eax, eax
jne 0x4b47e9
xor ecx, ecx
or eax, 0xffffffff
test eax, eax
setge cl
mov dword [esi + 0x44], ecx
jmp 0x4b510b
sub eax, dword [ebp + 0x68]
xor ecx, ecx
sar eax, 1
test eax, eax
setge cl
mov dword [esi + 0x44], ecx
jmp 0x4b510b
lea edx, [ebp + 0x60]
push str.scaledborderandshadow
push edx
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b4896
push 0x2c
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp + 0x20]
push ecx
call fcn.004aca00
add esp, 0xc
push eax
lea ecx, [ebp + 0x68]
mov byte [ebp - 4], 0xa
call fcn.0041fb20
lea ecx, [ebp + 0x20]
mov byte [ebp - 4], 1
call fcn.004194a0
lea ecx, [ebp + 0x68]
call fcn.004ab420
mov eax, dword [ebp + 0x68]
cmp dword [eax - 0xc], 0
jge 0x4b4862
or eax, 0xffffffff
test eax, eax
setge dl
mov byte [esi + 0x48], dl
jmp 0x4b510b
push 0x6474a4
push eax
call fcn.005db725
add esp, 8
test eax, eax
jne 0x4b4884
or eax, 0xffffffff
test eax, eax
setge dl
mov byte [esi + 0x48], dl
jmp 0x4b510b
sub eax, dword [ebp + 0x68]
sar eax, 1
test eax, eax
setge dl
mov byte [esi + 0x48], dl
jmp 0x4b510b
lea eax, [ebp + 0x60]
push str._v4_styles_
push eax
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b48b7
mov byte [ebp + 0x67], 1
mov dword [ebp + 0x58], edi
jmp 0x4b510b
lea ecx, [ebp + 0x60]
push 0x647470
push ecx
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b48dc
mov byte [ebp + 0x67], 1
mov dword [ebp + 0x58], 5
jmp 0x4b510b
lea edx, [ebp + 0x60]
push 0x647454
push edx
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b4901
mov byte [ebp + 0x67], 1
mov dword [ebp + 0x58], 6
jmp 0x4b510b
lea eax, [ebp + 0x60]
push str.style
push eax
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b4d32
push 0xc0
call fcn.005b4633
add esp, 4
mov dword [ebp + 0x4c], eax
test eax, eax
mov byte [ebp - 4], 0xb
je 0x4b493d
mov ecx, eax
call fcn.004b1b10
mov esi, eax
jmp 0x4b493f
xor esi, esi
test esi, esi
mov byte [ebp - 4], 1
mov dword [ebp + 0x40], esi
je 0x4b454d
lea ecx, [ebp + 0x3c]
call fcn.004019e0
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.004aca00
lea eax, [ebp + 0x28]
add esp, 0xc
push eax
call fcn.004a54a0
add esp, 8
push eax
lea ecx, [ebp + 0x3c]
mov byte [ebp - 4], 0xe
call fcn.00403020
lea ecx, [ebp + 0x28]
mov byte [ebp - 4], 0xd
call fcn.00401a50
push ecx
mov ecx, esp
mov dword [ebp + 0x4c], esp
push 0x2c
lea edx, [ebp + 0x68]
push edx
push ecx
call fcn.004aca00
lea eax, [ebp + 0x18]
add esp, 0xc
push eax
call fcn.004a54a0
add esp, 8
push eax
lea ecx, [esi + 0x50]
mov byte [ebp - 4], 0xf
call fcn.00403400
lea ecx, [ebp + 0x18]
mov byte [ebp - 4], 0xd
call fcn.00401a50
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
call fcn.004acaf0
fstp qword [esi + 0x58]
add esp, 8
xor edi, edi
cmp edi, 4
push 0x2c
jge 0x4b49fd
lea edx, [ebp + 0x68]
push edx
call fcn.004ae950
add esp, 8
mov dword [esi + edi*4 + 0x38], eax
add edi, 1
jmp 0x4b49e1
lea eax, [ebp + 0x68]
push eax
call fcn.004ae950
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.004ae950
mov edi, dword [ebp + 0x58]
add esp, 8
test eax, eax
setne dl
cmp edi, 5
mov byte [esi + 0x7c], dl
jl 0x4b4aab
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.004ae950
add esp, 8
test eax, eax
lea edx, [ebp + 0x68]
setne cl
push 0x2c
push edx
mov byte [esi + 0x7d], cl
call fcn.004ae950
add esp, 8
test eax, eax
lea ecx, [ebp + 0x68]
setne al
push 0x2c
push ecx
mov byte [esi + 0x7e], al
call fcn.004acaf0
fstp qword [esi + 0x60]
add esp, 8
lea edx, [ebp + 0x68]
push 0x2c
push edx
call fcn.004acaf0
fstp qword [esi + 0x68]
add esp, 8
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.004acaf0
fstp qword [esi + 0x70]
add esp, 8
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
call fcn.004acaf0
fstp qword [esi + 0x90]
add esp, 8
cmp edi, 4
jl 0x4b4ac1
lea edx, [ebp + 0x68]
push 0x2c
push edx
call fcn.004ae950
add esp, 8
mov dword [esi + 0x14], eax
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.004acaf0
fst qword [esi + 0x20]
add esp, 8
fstp qword [esi + 0x18]
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
call fcn.004acaf0
fst qword [esi + 0x30]
add esp, 8
fstp qword [esi + 0x28]
lea edx, [ebp + 0x68]
push 0x2c
push edx
call fcn.004ae950
add esp, 8
mov dword [esi + 0x10], eax
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.004ae950
add esp, 8
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
mov dword [esi], eax
call fcn.004ae950
add esp, 8
lea edx, [ebp + 0x68]
push 0x2c
push edx
mov dword [esi + 8], eax
call fcn.004ae950
add esp, 8
cmp edi, 6
mov dword [esi + 0xc], eax
mov dword [esi + 4], eax
jl 0x4b4b45
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.004ae950
add esp, 8
mov dword [esi + 0xc], eax
cmp edi, 4
jg 0x4b4b5d
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
call fcn.004ae950
mov ebx, eax
add esp, 8
mov dword [ebp + 0x44], ebx
lea edx, [ebp + 0x68]
push 0x2c
push edx
call fcn.004ae950
add esp, 8
cmp edi, 6
mov dword [esi + 0x4c], eax
jl 0x4b4b87
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.004ae950
add esp, 8
mov dword [esi + 0xb8], eax
cmp edi, 4
jg 0x4b4bbe
cmp ebx, 0xff
mov ecx, dword [esi + 0x44]
mov dword [esi + 0x40], ecx
jge 0x4b4bb3
test ebx, ebx
jg 0x4b4ba3
xor ebx, ebx
mov dword [ebp + 0x44], ebx
xor eax, eax
cmp eax, 3
jge 0x4b4bba
mov byte [eax + esi + 0x48], bl
add eax, 1
jmp 0x4b4ba5
mov ebx, 0xff
jmp 0x4b4ba0
mov byte [esi + 0x4b], 0x80
cmp edi, 5
jl 0x4b4c24
xor eax, eax
cmp eax, 4
jge 0x4b4bdc
mov dl, byte [esi + eax*4 + 0x3b]
mov byte [eax + esi + 0x48], dl
mov byte [esi + eax*4 + 0x3b], 0
add eax, 1
jmp 0x4b4bc5
cmp edi, 5
jl 0x4b4c24
fldz
fcom qword [esi + 0x60]
fnstsw ax
test ah, 5
jp 0x4b4bf2
fld qword [esi + 0x60]
jmp 0x4b4bf4
fld st(0)
fstp qword [esi + 0x60]
fcom qword [esi + 0x68]
fnstsw ax
test ah, 5
jp 0x4b4c06
fld qword [esi + 0x68]
jmp 0x4b4c08
fld st(0)
fstp qword [esi + 0x68]
fcom qword [esi + 0x70]
fnstsw ax
test ah, 5
jp 0x4b4c1d
fld qword [esi + 0x70]
fstp qword [esi + 0x70]
jmp 0x4b4c26
fld st(0)
fstp qword [esi + 0x70]
jmp 0x4b4c26
fldz
mov eax, dword [esi + 0x14]
fst qword [esi + 0xa0]
cmp eax, 1
fst qword [esi + 0x98]
jne 0x4b4c3e
xor eax, eax
jmp 0x4b4c48
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 0x4b4c5a
fld qword [esi + 0x18]
jmp 0x4b4c5c
fld st(0)
fstp qword [esi + 0x18]
fcom qword [esi + 0x20]
fnstsw ax
test ah, 5
jp 0x4b4c6e
fld qword [esi + 0x20]
jmp 0x4b4c70
fld st(0)
fstp qword [esi + 0x20]
fcom qword [esi + 0x28]
fnstsw ax
test ah, 5
jp 0x4b4c82
fld qword [esi + 0x28]
jmp 0x4b4c84
fld st(0)
fstp qword [esi + 0x28]
fcom qword [esi + 0x30]
fnstsw ax
test ah, 5
jp 0x4b4c96
fstp st(0)
fld qword [esi + 0x30]
cmp edi, 4
fstp qword [esi + 0x30]
jg 0x4b4cbf
mov eax, dword [esi + 0x10]
test al, 4
je 0x4b4cad
and eax, 3
add eax, 6
jmp 0x4b4cbc
test al, 8
je 0x4b4cb9
and eax, 3
add eax, 3
jmp 0x4b4cbc
and eax, 3
mov dword [esi + 0x10], eax
push 0x2a
lea ecx, [ebp + 0x3c]
call fcn.00434280
push esi
push ecx
lea edx, [ebp + 0x3c]
mov ecx, esp
mov dword [ebp + 0x4c], esp
push edx
call fcn.00402bc0
mov ecx, dword [ebp + 0x78]
call fcn.004b39c0
lea ecx, [ebp + 0x3c]
call fcn.00401a50
mov esi, dword [ebp + 0x78]
mov dword [ebp - 4], 1
mov edi, 4
jmp 0x4b510b
lea ecx, [ebp + 0x60]
push str._events_
push ecx
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b4d50
mov byte [ebp + 0x67], 1
jmp 0x4b510b
lea edx, [ebp + 0x60]
push str.dialogue
push edx
call fcn.00420930
add esp, 8
test al, al
je 0x4b50ea
lea ecx, [ebp + 0x50]
mov dword [ebp + 0x40], 0
call fcn.004019e0
lea ecx, [ebp + 0x34]
call fcn.004019e0
lea ecx, [ebp + 0x54]
call fcn.004019e0
mov esi, dword [ebp + 0x48]
cmp esi, edi
mov byte [ebp - 4], 0x14
jg 0x4b4dbb
push 0x3d
lea eax, [ebp + 0x68]
push eax
lea ecx, [ebp - 0x38]
push ecx
call fcn.004aca00
add esp, 0xc
lea ecx, [ebp - 0x38]
call fcn.004194a0
lea edx, [ebp + 0x68]
push 0x2c
push edx
call fcn.004ae950
add esp, 8
cmp esi, 5
jl 0x4b4dd1
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.004ae950
add esp, 8
mov dword [ebp + 0x40], eax
lea ecx, [ebp + 0x68]
push 0x3a
push ecx
call fcn.004ae950
add esp, 8
lea edx, [ebp + 0x68]
push 0x3a
push edx
mov dword [ebp - 0x14], eax
call fcn.004ae950
add esp, 8
mov dword [ebp - 0x1c], eax
lea eax, [ebp + 0x68]
push 0x2e
push eax
call fcn.004ae950
add esp, 8
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
mov dword [ebp - 0x24], eax
call fcn.004ae950
add esp, 8
lea edx, [ebp + 0x68]
push 0x3a
push edx
mov dword [ebp + 0x4c], eax
call fcn.004ae950
add esp, 8
mov dword [ebp + 0x1c], eax
lea eax, [ebp + 0x68]
push 0x3a
push eax
call fcn.004ae950
add esp, 8
lea ecx, [ebp + 0x68]
push 0x2e
push ecx
mov dword [ebp + 0x14], eax
call fcn.004ae950
add esp, 8
lea edx, [ebp + 0x68]
push 0x2c
push edx
mov dword [ebp + 0xc], eax
call fcn.004ae950
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.004aca00
lea edx, [ebp + 0x10]
add esp, 0xc
push edx
call fcn.004a54a0
add esp, 8
push eax
lea ecx, [ebp + 0x50]
mov byte [ebp - 4], 0x15
call fcn.00403020
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x14
call fcn.00401a50
push ecx
mov eax, esp
mov dword [ebp + 0x38], esp
push 0x2c
lea ecx, [ebp + 0x68]
push ecx
push eax
call fcn.004aca00
add esp, 0xc
lea edx, [ebp - 0x20]
push edx
call fcn.004a54a0
add esp, 8
push eax
lea ecx, [ebp + 0x34]
mov byte [ebp - 4], 0x16
call fcn.00403020
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0x14
call fcn.00401a50
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.004ae950
add esp, 8
lea ecx, [ebp + 0x68]
push 0x2c
push ecx
mov dword [ebp + 0x2c], eax
call fcn.004ae950
add esp, 8
lea edx, [ebp + 0x68]
push 0x2c
push edx
mov dword [ebp + 0x38], eax
call fcn.004ae950
add esp, 8
cmp dword [ebp + 0x48], 6
mov edi, eax
mov dword [ebp - 0x44], edi
jl 0x4b4f18
lea eax, [ebp + 0x68]
push 0x2c
push eax
call fcn.004ae950
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.004aca00
lea eax, [ebp + 8]
add esp, 0xc
push eax
call fcn.004a54a0
add esp, 8
push eax
lea ecx, [ebp + 0x54]
mov byte [ebp - 4], 0x17
call fcn.00403020
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0x14
call fcn.00401a50
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 0x4b4f66
mov esi, ecx
push ecx
mov eax, esp
mov dword [ebp + 0x30], esp
push esi
push eax
lea ecx, [ebp + 0x68]
call fcn.00466e20
lea ecx, [ebp]
push ecx
call fcn.004a54a0
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.004048d0
push ebx
push eax
call fcn.00434230
add esp, 8
lea ecx, [ebp - 0x30]
mov bl, al
call fcn.00401a50
lea ecx, [ebp]
mov byte [ebp - 4], 0x14
call fcn.00401a50
test bl, bl
je 0x4b4fc1
lea ecx, [ebp + 0x54]
call fcn.00401930
push 0x2a
lea ecx, [ebp + 0x50]
call fcn.00434280
mov eax, dword [ebp + 0x50]
push 0x64651c
push eax
call fcn.005db99d
add esp, 8
test eax, eax
jne 0x4b4fed
push 0x64651c
lea ecx, [ebp + 0x50]
call fcn.00401e30
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.00402bc0
push ecx
lea edx, [ebp + 0x34]
mov ecx, esp
mov dword [ebp + 0x38], esp
push edx
mov byte [ebp - 4], 0x19
call fcn.00402bc0
push ecx
lea eax, [ebp + 0x50]
mov ecx, esp
mov dword [ebp + 0x2c], esp
push eax
mov byte [ebp - 4], 0x1a
call fcn.00402bc0
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.004a4f40
lea edx, [ebp + 0x68]
push eax
push ecx
mov ecx, esp
mov dword [ebp + 0x4c], esp
push edx
call fcn.0041efe0
mov ecx, dword [ebp + 0x78]
mov byte [ebp - 4], 0x14
call fcn.004af1c0
lea ecx, [ebp + 0x54]
call fcn.00401a50
lea ecx, [ebp + 0x34]
call fcn.00401a50
lea ecx, [ebp + 0x50]
call fcn.00401a50
mov esi, dword [ebp + 0x78]
mov dword [ebp - 4], 1
mov edi, 4
jmp 0x4b510b
lea eax, [ebp + 0x60]
push str.fontname
push eax
call fcn.004a9e30
add esp, 8
test al, al
je 0x4b510b
mov ecx, dword [ebp + 0x74]
push ecx
call fcn.004aebd0
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 0x4b43d4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4b43d4
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 0x4b515d
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