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

Disassembly:
push 0xffffffffffffffff
push 0x4c7888
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x20], esi
mov eax, dword [esp + 0x148]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x124], 1
je 0x4a4f60
inc dword [eax + 4]
mov ecx, dword [esi + 0xac]
cmp ecx, ebx
mov dword [esi + 0xac], eax
je 0x4a4f83
mov edx, dword [ecx + 4]
dec edx
mov eax, edx
cmp eax, ebx
mov dword [ecx + 4], edx
jne 0x4a4f83
mov eax, dword [ecx]
push 1
call dword [eax]
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x134]
push ecx
lea ecx, [esi + 0xb4]
call fcn.00402aa0
push 0x10
call fcn.004ad909
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, ebx
mov byte [esp + 0x124], 2
je 0x4a4fcd
push ecx
mov ecx, esp
lea edx, [esp + 0x130]
mov dword [esp + 0x2c], esp
mov dword [ecx], ebx
push edx
mov ecx, eax
call fcn.0040cb30
jmp 0x4a4fcf
xor eax, eax
cmp eax, ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x98], eax
je 0x4a4fe1
inc dword [eax + 4]
mov edx, dword [eax]
push ebx
push ebx
push 1
lea ecx, [esp + 0x24]
push ecx
mov ecx, eax
mov byte [esp + 0x134], 3
call dword [edx + 4]
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x124], 4
je 0x4a5020
mov edx, dword [eax + 0xc]
cmp edx, ebx
je 0x4a5020
mov ecx, dword [eax + 0x10]
sub ecx, edx
sar ecx, 5
cmp ecx, ebx
jne 0x4a50a5
lea edx, [esp + 0x14]
push edx
call fcn.00408c00
mov ecx, eax
call fcn.004014f0
mov eax, dword [eax]
push 0x51ff63
push str._is_empty
lea ecx, [esp + 0x134]
push ecx
push str.File
push 0x51ff84
mov ecx, eax
mov byte [esp + 0x138], 5
call fcn.00401560
mov ecx, eax
call fcn.00403390
mov ecx, eax
call fcn.00403370
mov ecx, eax
call fcn.00403390
mov ecx, eax
call fcn.00403f50
mov eax, dword [esp + 0x14]
cmp eax, ebx
mov byte [esp + 0x124], 4
je 0x4a50a1
mov edx, dword [eax + 4]
mov ecx, eax
add eax, 4
dec edx
mov dword [eax], edx
mov dword [esp + 0x1c], edx
jne 0x4a50a1
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0xc]
mov eax, str.object
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x4a50b0
mov edx, dword [ecx + 0x14]
sub eax, esi
push eax
push str.object
push edx
push ebx
call fcn.00401470
test eax, eax
je 0x4a5152
lea eax, [esp + 0x14]
push eax
call fcn.00408c00
mov ecx, eax
call fcn.004014f0
mov eax, dword [eax]
push 0x51ff63
push str._is_corrupt:_root_tag_must_be__object_
lea ecx, [esp + 0x134]
push ecx
push str.Bonus_file
push 0x51ff84
mov ecx, eax
mov byte [esp + 0x138], 6
call fcn.00401560
mov ecx, eax
call fcn.00403390
mov ecx, eax
call fcn.00403370
mov ecx, eax
call fcn.00403390
mov ecx, eax
call fcn.00403f50
mov eax, dword [esp + 0x14]
cmp eax, ebx
mov byte [esp + 0x124], 4
je 0x4a5152
mov edx, dword [eax + 4]
mov ecx, eax
add eax, 4
dec edx
mov dword [eax], edx
mov dword [esp + 0x1c], edx
jne 0x4a5152
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xc]
mov eax, dword [eax + 0x1c]
cmp eax, ebx
mov dword [esp + 0x1c], eax
je 0x4a5167
inc dword [eax + 4]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
cmp ecx, eax
mov byte [esp + 0x124], 7
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], eax
je 0x4a5696
mov eax, str.node
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4a5190
sub eax, edx
mov edx, dword [esp + 0x14]
mov edx, dword [edx + 0x14]
cmp edx, ebx
je 0x4a51d5
cmp edx, eax
mov ecx, edx
jb 0x4a51ac
mov ecx, eax
mov esi, dword [esp + 0x14]
mov edi, dword [esi + 0x18]
add esi, 4
cmp edi, 0x10
jb 0x4a51bd
mov esi, dword [esi]
mov edi, str.node
xor ebp, ebp
repe cmpsb byte [esi], byte es:[edi]
je 0x4a51cd
sbb ebp, ebp
sbb ebp, 0xffffffff
cmp ebp, ebx
jne 0x4a5570
cmp edx, eax
jb 0x4a5570
xor ecx, ecx
cmp edx, eax
setne cl
mov ebp, ecx
cmp ebp, ebx
jne 0x4a5570
mov ebp, 0xf
mov eax, 0x4f130c
mov dword [esp + 0x50], ebp
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x3c], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4a5207
sub eax, edx
push eax
push 0x4f130c
lea ecx, [esp + 0x40]
call fcn.00402cd0
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x38]
push edx
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
mov dword [eax], ebx
mov eax, dword [edi + 0x1c]
cmp eax, ebx
push ecx
mov ecx, esp
mov byte [esp + 0x130], 8
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
je 0x4a524c
inc dword [eax + 4]
call fcn.00415620
lea ecx, [esp + 0x38]
push ecx
mov ecx, eax
call fcn.00430b00
mov eax, dword [eax]
cmp eax, ebx
mov byte [esp + 0x124], 9
je 0x4a526e
inc dword [eax + 4]
mov esi, dword [esp + 0x20]
mov ecx, dword [esi + 0x28]
cmp ecx, ebx
mov dword [esi + 0x28], eax
je 0x4a528f
mov edx, dword [ecx + 4]
dec edx
mov eax, edx
cmp eax, ebx
mov dword [ecx + 4], edx
jne 0x4a528f
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esp + 0x2c]
cmp eax, ebx
mov byte [esp + 0x124], 8
je 0x4a52b8
mov edx, dword [eax + 4]
mov ecx, eax
add eax, 4
dec edx
mov dword [eax], edx
mov eax, edx
mov dword [esp + 0x10], eax
jne 0x4a52b8
mov edx, dword [ecx]
push 1
call dword [edx]
cmp dword [esp + 0x50], 0x10
jb 0x4a52cc
mov eax, dword [esp + 0x3c]
push eax
call fcn.004ade5d
add esp, 4
mov eax, dword [esi + 0x28]
cmp eax, ebx
push 1
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x58], ebx
mov byte [esp + 0x48], bl
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
je 0x4a52ef
inc dword [eax + 4]
mov byte [esp + 0x130], 0xa
call fcn.0040e220
mov edx, dword [eax]
mov ecx, eax
mov byte [esp + 0x130], 7
call dword [edx + 0x10]
mov eax, 0x4f130c
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x4a5325
sub eax, ecx
push eax
push 0x4f130c
lea ecx, [esp + 0x78]
call fcn.00402cd0
lea eax, [esp + 0x70]
push eax
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
mov dword [eax], ebx
mov eax, dword [edi + 0x1c]
cmp eax, ebx
push ecx
mov ecx, esp
mov byte [esp + 0x130], 0xb
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
je 0x4a5366
inc dword [eax + 4]
call fcn.00415620
lea ecx, [esp + 0x40]
push ecx
mov ecx, eax
call fcn.00430b00
mov eax, dword [eax]
cmp eax, ebx
mov byte [esp + 0x124], 0xc
je 0x4a5388
inc dword [eax + 4]
mov ecx, dword [esi + 0xa8]
cmp ecx, ebx
mov dword [esi + 0xa8], eax
je 0x4a53ab
mov edx, dword [ecx + 4]
dec edx
mov eax, edx
cmp eax, ebx
mov dword [ecx + 4], edx
jne 0x4a53ab
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esp + 0x34]
cmp eax, ebx
mov byte [esp + 0x124], 0xb
je 0x4a53d4
mov edx, dword [eax + 4]
mov ecx, eax
add eax, 4
dec edx
mov dword [eax], edx
mov eax, edx
mov dword [esp + 0x10], eax
jne 0x4a53d4
mov edx, dword [ecx]
push 1
call dword [edx]
cmp dword [esp + 0x88], 0x10
mov byte [esp + 0x124], 7
jb 0x4a53f3
mov eax, dword [esp + 0x74]
push eax
call fcn.004ade5d
add esp, 4
mov ecx, dword [esi + 0xa8]
mov dword [esp + 0x88], ebp
mov dword [esp + 0x84], ebx
mov byte [esp + 0x74], bl
call fcn.0040d980
push eax
lea ecx, [esp + 0xbc]
call fcn.0040de60
push 0x88ffffff
lea ecx, [esp + 0xbc]
call fcn.004221c0
mov ecx, dword [esi + 0xa8]
lea edx, [esp + 0xb8]
push edx
call fcn.0042adf0
mov eax, dword [esi + 0xa8]
cmp eax, ebx
push 1
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
je 0x4a545b
inc dword [eax + 4]
mov byte [esp + 0x130], 0xd
call fcn.0040e220
mov edx, dword [eax]
mov ecx, eax
mov byte [esp + 0x130], 7
call dword [edx + 0x10]
mov eax, 0x4f130c
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
lea ecx, [eax + 1]
jmp 0x4a5490
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x4a5490
sub eax, ecx
push eax
push 0x4f130c
lea ecx, [esp + 0x5c]
call fcn.00402cd0
lea eax, [esp + 0x54]
push eax
push ecx
mov eax, esp
mov dword [esp + 0x18], esp
mov dword [eax], ebx
mov eax, dword [edi + 0x1c]
cmp eax, ebx
push ecx
mov ecx, esp
mov byte [esp + 0x130], 0xe
mov dword [esp + 0x1c], esp
mov dword [ecx], eax
je 0x4a54d1
inc dword [eax + 4]
call fcn.00415620
lea ecx, [esp + 0x3c]
push ecx
mov ecx, eax
call fcn.00430b00
mov eax, dword [eax]
cmp eax, ebx
mov byte [esp + 0x124], 0xf
je 0x4a54f3
inc dword [eax + 4]
mov ecx, dword [esi + 0xb0]
cmp ecx, ebx
mov dword [esi + 0xb0], eax
je 0x4a5516
mov edx, dword [ecx + 4]
dec edx
mov eax, edx
cmp eax, ebx
mov dword [ecx + 4], edx
jne 0x4a5516
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esp + 0x30]
cmp eax, ebx
mov byte [esp + 0x124], 0xe
je 0x4a553f
mov edx, dword [eax + 4]
mov ecx, eax
add eax, 4
dec edx
mov dword [eax], edx
mov eax, edx
mov dword [esp + 0x10], eax
jne 0x4a553f
mov edx, dword [ecx]
push 1
call dword [edx]
cmp dword [esp + 0x6c], 0x10
mov byte [esp + 0x124], 7
jb 0x4a555b
mov eax, dword [esp + 0x58]
push eax
call fcn.004ade5d
add esp, 4
mov esi, dword [esp + 0x14]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], ebx
mov byte [esp + 0x58], bl
jmp 0x4a5683
mov eax, str.hit_effect
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4a5578
sub eax, esi
mov esi, dword [esp + 0x14]
push eax
push str.hit_effect
push edx
push ebx
mov ecx, esi
call fcn.00401470
test eax, eax
jne 0x4a5626
mov eax, dword [esi + 0x1c]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push ebx
add eax, 0x24
mov edi, 0xf
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00402aa0
lea ecx, [esp + 0xb8]
push ecx
call fcn.004510c0
add esp, 0x20
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
push ebx
push eax
add ecx, 0x88
mov byte [esp + 0x130], 0x10
call fcn.00402aa0
cmp dword [esp + 0xb4], 0x10
mov byte [esp + 0x124], 7
jb 0x4a560f
mov edx, dword [esp + 0xa0]
push edx
call fcn.004ade5d
add esp, 4
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb0], ebx
mov byte [esp + 0xa0], bl
jmp 0x4a5683
mov eax, str.radius
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4a5630
sub eax, edx
push eax
mov eax, dword [esi + 0x14]
push str.radius
push eax
push ebx
mov ecx, esi
call fcn.00401470
test eax, eax
jne 0x4a5683
mov eax, dword [esi + 0x1c]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0xffffffffffffffff
push ebx
add eax, 0x24
mov dword [ecx + 0x18], 0xf
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00402aa0
call fcn.00410370
mov ecx, dword [esp + 0x3c]
fstp dword [ecx + 0x40]
add esp, 0x1c
mov eax, dword [esp + 0x28]
add esi, 0x20
cmp esi, eax
mov dword [esp + 0x14], esi
jne 0x4a5185
mov ebp, dword [esp + 0x20]
mov ecx, dword [ebp + 0x28]
cmp ecx, ebx
je 0x4a56ef
call fcn.00481fe0
fld dword [0x4f2a08]
mov edi, dword [eax + 4]
mov ecx, dword [ebp + 0x28]
mov esi, dword [eax]
mov edx, dword [eax + 8]
mov dword [esp + 0x90], edi
fsub dword [esp + 0x90]
push ecx
mov dword [esp + 0x98], edx
fsub dword [0x4f1a10]
fstp dword [esp]
push edi
push esi
call fcn.00424870
mov ecx, dword [ebp + 0xa8]
push 0xc4160000
push edi
push esi
call fcn.00424870
mov ecx, ebp
call fcn.004a3fe0
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 4]
dec edx
mov eax, edx
cmp eax, ebx
mov byte [esp + 0x124], 4
mov dword [ecx + 4], edx
jne 0x4a5715
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esp + 0x18]
cmp eax, ebx
mov byte [esp + 0x124], 3
je 0x4a573c
mov edx, dword [eax + 4]
mov ecx, eax
add eax, 4
dec edx
mov dword [eax], edx
mov dword [esp + 0x10], edx
jne 0x4a573c
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
dec edx
mov eax, edx
cmp eax, ebx
mov byte [esp + 0x124], 1
mov dword [ecx + 4], edx
jne 0x4a575b
mov edx, dword [ecx]
push 1
call dword [edx]
cmp dword [esp + 0x144], 0x10
jb 0x4a5775
mov eax, dword [esp + 0x130]
push eax
call fcn.004ade5d
add esp, 4
mov ecx, dword [esp + 0x148]
cmp ecx, ebx
mov dword [esp + 0x144], 0xf
mov dword [esp + 0x140], ebx
mov byte [esp + 0x130], bl
mov dword [esp + 0x124], 0xffffffff
je 0x4a57af
dec dword [ecx + 4]
jne 0x4a57af
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x11c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x118
ret 0x20