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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffed4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], ecx
mov esi, edx
lea edi, [ebp - 0xe8]
mov ecx, 0x34
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x104]
mov edx, dword [0x4ecc6c]
call fcn.00405ab0
lea ebx, [ebp - 8]
lea edi, [ebp - 0xe8]
xor eax, eax
push ebp
push 0x4f2de6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx]
mov edx, dword [edi + 0x10]
sub edx, dword [eax + 0x2e4]
mov eax, dword [ebx]
add edx, dword [eax + 0x294]
mov dword [ebp - 0x128], edx
mov eax, dword [ebx]
mov edx, dword [edi + 0x78]
sub edx, dword [eax + 0x2e8]
mov eax, dword [ebx]
add edx, dword [eax + 0x298]
mov dword [ebp - 0x124], edx
mov eax, dword [edi + 0x38]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0xa0]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x128]
mov edx, 3
call fcn.0042b824
mov dword [ebp - 0x12c], eax
fild dword [ebp - 0x12c]
call fcn.0040345c
add eax, 3
mov dword [ebp - 0x108], eax
mov eax, dword [ebp - 0x108]
add eax, eax
push eax
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x4ecc14]
call fcn.00406758
add esp, 4
mov eax, dword [ebp - 0x108]
push eax
lea eax, [ebp - 0xc]
mov ecx, 1
mov edx, dword [0x4ecc40]
call fcn.00406758
add esp, 4
mov eax, dword [ebp - 0x108]
dec eax
test eax, eax
jl 0x4f221b
inc eax
xor edx, edx
mov ecx, dword [ebp - 0xc]
mov dword [ecx + edx*4], 2
inc edx
dec eax
jne 0x4f220d
lea eax, [ebp - 0x104]
mov edx, dword [ebp - 4]
mov ecx, dword [0x4ecc14]
call fcn.004068b4
lea eax, [ebp - 0x100]
mov edx, dword [ebp - 0xc]
mov ecx, dword [0x4ecc40]
call fcn.004068b4
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0xfc], eax
mov eax, dword [edi + 0x4c]
dec eax
mov dword [ebp - 0xf8], eax
mov eax, dword [edi + 0xb4]
dec eax
mov dword [ebp - 0xf4], eax
mov eax, dword [ebx]
test byte [eax + 0x2d0], 1
setne al
push eax
push 0
mov eax, dword [ebx]
mov eax, dword [eax + 0x2d4]
push eax
xor eax, eax
mov dword [ebp - 0x128], eax
mov eax, dword [edi + 0xa4]
inc eax
mov dword [ebp - 0x124], eax
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0xa8]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x128]
push eax
push 3
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
xor edx, edx
mov esi, dword [eax]
call dword [esi + 0x14]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x290]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
push eax
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebx]
test byte [eax + 0x2d0], 2
setne cl
mov edx, edi
mov eax, dword [ebx]
call fcn.004f02e8
mov eax, dword [ebx]
test byte [eax + 0x2d0], 1
setne al
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x294]
mov edx, dword [ebx]
sub eax, dword [edx + 0x2a0]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x2d4]
push eax
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x128], eax
mov eax, dword [edi + 0xa4]
inc eax
mov dword [ebp - 0x124], eax
mov eax, dword [edi + 4]
dec eax
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0xa8]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x128]
push eax
push 3
mov eax, dword [ebx]
mov edx, dword [eax + 0x294]
mov eax, dword [ebx]
sub edx, dword [eax + 0x2a0]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x14]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x290]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
push eax
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebx]
test byte [eax + 0x2d0], 2
setne cl
mov edx, edi
mov eax, dword [ebx]
call fcn.004f02e8
cmp dword [edi + 0x34], 0
jle 0x4f23e9
push ebp
mov eax, dword [edi + 0xa8]
push eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov edx, dword [eax + 0x294]
dec edx
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x20]
push eax
mov ecx, dword [edi + 4]
dec ecx
mov edx, dword [edi + 0xa4]
inc edx
mov eax, dword [edi + 4]
dec eax
call fcn.004f1db4
pop ecx
push ebp
mov eax, dword [edi + 0xa4]
push eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x294]
mov eax, dword [ebx]
sub edx, dword [eax + 0x2a0]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x1c]
push eax
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0xa4]
xor eax, eax
call fcn.004f1db4
pop ecx
mov eax, dword [ebx]
cmp dword [eax + 0x2f2], 0
jne 0x4f243e
mov eax, dword [ebx]
cmp dword [eax + 0x2f6], 0
je 0x4f2479
lea eax, [ebp - 0x110]
push eax
mov eax, dword [edi + 0xa8]
push eax
lea eax, [ebp - 0x128]
push eax
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xa4]
mov eax, dword [edi + 4]
call fcn.00407644
lea ecx, [ebp - 0x128]
mov eax, dword [ebx]
mov edx, dword [eax + 0x250]
mov eax, dword [ebx]
call fcn.004f1d14
mov eax, dword [ebx]
test byte [eax + 0x2d0], 4
setne al
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x2e4]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x2d4]
push eax
mov eax, dword [edi + 0x54]
mov dword [ebp - 0x128], eax
mov eax, dword [edi + 0xa4]
inc eax
mov dword [ebp - 0x124], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0xa8]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x128]
push eax
push 3
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov edx, dword [eax + 0x2e4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x14]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x70]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
push eax
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebx]
test byte [eax + 0x2d0], 8
setne cl
mov edx, edi
mov eax, dword [ebx]
call fcn.004f02e8
push ebp
mov eax, dword [edi + 0xa4]
push eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov edx, dword [eax + 0x2e4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x1c]
push eax
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xa4]
mov eax, dword [edi + 0x54]
call fcn.004f1db4
pop ecx
mov eax, dword [ebx]
cmp dword [eax + 0x2f2], 0
jne 0x4f2563
mov eax, dword [ebx]
cmp dword [eax + 0x2f6], 0
je 0x4f2576
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
lea edx, [ebp - 0x110]
call fcn.004f0058
mov eax, dword [ebx]
test byte [eax + 0x2d0], 1
setne al
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x264]
push eax
push 0
mov eax, dword [edi + 0x3c]
inc eax
mov dword [ebp - 0x128], eax
xor eax, eax
mov dword [ebp - 0x124], eax
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0x98]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x128]
push eax
push 3
mov eax, dword [ebx]
mov edx, dword [eax + 0x264]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
xor ecx, ecx
mov esi, dword [eax]
call dword [esi + 0x14]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x290]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
push eax
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebx]
test byte [eax + 0x2d0], 2
setne cl
mov edx, edi
mov eax, dword [ebx]
call fcn.004f02e8
mov eax, dword [ebx]
test byte [eax + 0x2d0], 1
setne al
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x264]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x298]
mov edx, dword [ebx]
sub eax, dword [edx + 0x2a4]
push eax
mov eax, dword [edi + 0x3c]
inc eax
mov dword [ebp - 0x128], eax
mov eax, dword [edi + 0x98]
mov dword [ebp - 0x124], eax
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0x6c]
dec eax
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x128]
push eax
push 3
mov eax, dword [ebx]
mov ecx, dword [eax + 0x298]
mov eax, dword [ebx]
sub ecx, dword [eax + 0x2a4]
mov eax, dword [ebx]
mov edx, dword [eax + 0x264]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x14]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x290]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
push eax
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebx]
test byte [eax + 0x2d0], 2
setne cl
mov edx, edi
mov eax, dword [ebx]
call fcn.004f02e8
cmp dword [edi + 0x9c], 0
jle 0x4f26f0
push ebp
mov eax, dword [edi + 0x6c]
dec eax
push eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x298]
dec ecx
mov eax, dword [ebx]
mov edx, dword [eax + 0x264]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x18]
push eax
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi + 0x3c]
inc eax
mov ecx, dword [edi + 0x40]
call fcn.004f1db4
pop ecx
push ebp
mov eax, dword [edi + 0x6c]
push eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x298]
mov eax, dword [ebx]
sub ecx, dword [eax + 0x2a4]
mov eax, dword [ebx]
mov edx, dword [eax + 0x264]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x18]
push eax
mov ecx, dword [edi + 0x3c]
xor edx, edx
mov eax, dword [edi + 0x3c]
call fcn.004f1db4
pop ecx
mov eax, dword [ebx]
test byte [eax + 0x2d0], 4
setne al
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x264]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x2e8]
push eax
mov eax, dword [edi + 0x3c]
inc eax
mov dword [ebp - 0x128], eax
mov eax, dword [edi + 0x6c]
mov dword [ebp - 0x124], eax
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0x70]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x128]
push eax
push 3
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2e8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x264]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x14]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x70]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
push eax
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebx]
test byte [eax + 0x2d0], 8
setne cl
mov edx, edi
mov eax, dword [ebx]
call fcn.004f02e8
push ebp
mov eax, dword [edi + 0x70]
push eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2e8]
mov eax, dword [ebx]
mov edx, dword [eax + 0x264]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x18]
push eax
mov ecx, dword [edi + 0x3c]
mov edx, dword [edi + 0x6c]
mov eax, dword [edi + 0x3c]
call fcn.004f1db4
pop ecx
mov eax, dword [ebx]
test byte [eax + 0x2d0], 4
setne al
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x264]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x2d4]
push eax
mov eax, dword [edi + 0x3c]
inc eax
mov dword [ebp - 0x128], eax
mov eax, dword [edi + 0xa4]
inc eax
mov dword [ebp - 0x124], eax
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x120], eax
mov eax, dword [edi + 0xa8]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x128]
push eax
push 3
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov edx, dword [eax + 0x264]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x14]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x70]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
push eax
lea eax, [ebp - 0x104]
push eax
mov eax, dword [ebx]
test byte [eax + 0x2d0], 8
setne cl
mov edx, edi
mov eax, dword [ebx]
call fcn.004f02e8
push ebp
mov eax, dword [edi + 0xa8]
push eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov edx, dword [eax + 0x264]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x18]
push eax
mov ecx, dword [edi + 0x3c]
mov edx, dword [edi + 0xa4]
mov eax, dword [edi + 0x3c]
call fcn.004f1db4
pop ecx
push ebp
mov eax, dword [edi + 0xa4]
push eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov edx, dword [eax + 0x264]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2a8]
mov esi, dword [eax]
call dword [esi + 0x1c]
push eax
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0xa4]
mov eax, dword [edi + 0x3c]
call fcn.004f1db4
pop ecx
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebx]
test byte [eax + 0x2d0], 1
je 0x4f2921
mov dword [ebp - 0x10], 4
mov dword [ebp - 0x14], 1
mov eax, dword [ebx]
test byte [eax + 0x2d0], 2
je 0x4f2934
or dword [ebp - 0x10], 8
or dword [ebp - 0x14], 2
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
jge 0x4f29de
mov eax, dword [ebx]
cmp dword [eax + 0x274], 0
jg 0x4f295a
mov eax, dword [ebx]
cmp dword [eax + 0x270], 0
jle 0x4f29de
mov eax, dword [ebx]
mov si, 0xffc7
call fcn.0040400c
test al, al
je 0x4f29a7
mov eax, dword [edi + 0xa8]
push eax
lea eax, [ebp - 0x128]
push eax
mov esi, dword [edi + 0x40]
mov eax, esi
sub eax, dword [edi + 8]
mov ecx, esi
mov edx, dword [edi + 0xa4]
call fcn.00407644
lea edx, [ebp - 0x128]
lea ecx, [ebp - 0x110]
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
call fcn.004effe8
jmp 0x4f29de
mov eax, dword [edi + 0xa8]
push eax
lea eax, [ebp - 0x128]
push eax
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xa4]
xor eax, eax
call fcn.00407644
lea edx, [ebp - 0x128]
lea ecx, [ebp - 0x110]
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
call fcn.004effe8
push ebp
mov eax, dword [edi + 0xa4]
inc eax
push eax
mov eax, dword [edi + 0x30]
push eax
mov eax, dword [edi + 0xa8]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x290]
push eax
movzx eax, byte [0x4f2df4]
push eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x2d4]
xor ecx, ecx
xor eax, eax
call fcn.004f1e14
pop ecx
push ebp
mov eax, dword [edi + 0xa4]
inc eax
push eax
mov eax, dword [edi + 4]
push eax
mov eax, dword [edi + 0xa8]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x358]
push eax
movzx eax, byte [0x4f2df8]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x294]
mov edx, dword [ebx]
sub eax, dword [edx + 0x2a0]
mov edx, dword [ebx]
mov edx, dword [edx + 0x2d4]
mov ecx, dword [edi + 0x30]
call fcn.004f1e14
pop ecx
mov eax, dword [ebx]
cmp dword [eax + 0x2f2], 0
jne 0x4f2a71
mov eax, dword [ebx]
cmp dword [eax + 0x2f6], 0
je 0x4f2aac
lea eax, [ebp - 0x118]
push eax
mov eax, dword [edi + 0xa8]
push eax
lea eax, [ebp - 0x128]
push eax
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0xa4]
mov eax, dword [edi + 4]
call fcn.00407644
lea ecx, [ebp - 0x128]
mov eax, dword [ebx]
mov edx, dword [eax + 0x250]
mov eax, dword [ebx]
call fcn.004f1d14
push ebp
mov eax, dword [edi + 0xa4]
inc eax
push eax
mov eax, dword [edi + 8]
push eax
mov eax, dword [edi + 0xa8]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x358]
push eax
movzx eax, byte [0x4f2df8]
push eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x2e4]
mov ecx, dword [edi + 0x54]
call fcn.004f1e14
pop ecx
mov eax, dword [ebx]
cmp dword [eax + 0x2f2], 0
jne 0x4f2b00
mov eax, dword [ebx]
cmp dword [eax + 0x2f6], 0
je 0x4f2b13
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
lea edx, [ebp - 0x118]
call fcn.004f0058
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
jge 0x4f2b2e
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
lea edx, [ebp - 0x110]
call fcn.004f0058
xor eax, eax
mov dword [ebp - 0x10c], eax
mov eax, dword [edi + 0xa4]
cmp eax, dword [edi + 0xa8]
jge 0x4f2bd3
mov eax, dword [ebx]
cmp dword [eax + 0x274], 0
jg 0x4f2b5e
mov eax, dword [ebx]
cmp dword [eax + 0x270], 0
jle 0x4f2bd3
mov eax, dword [ebx]
mov si, 0xffc7
call fcn.0040400c
test al, al
je 0x4f2ba2
mov eax, dword [edi + 0x70]
push eax
lea eax, [ebp - 0x128]
push eax
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
xor edx, edx
xor eax, eax
call fcn.00407644
lea edx, [ebp - 0x128]
lea ecx, [ebp - 0x110]
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
call fcn.004effe8
jmp 0x4f2bd3
mov eax, dword [edi + 0x70]
push eax
lea eax, [ebp - 0x128]
push eax
mov ecx, dword [edi + 0x40]
xor edx, edx
mov eax, dword [edi + 0x3c]
call fcn.00407644
lea edx, [ebp - 0x128]
lea ecx, [ebp - 0x110]
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
call fcn.004effe8
push ebp
push 0
mov eax, dword [edi + 0x40]
push eax
mov eax, dword [edi + 0x98]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x290]
push eax
movzx eax, byte [0x4f2df4]
push eax
mov ecx, dword [edi + 0x3c]
inc ecx
mov eax, dword [ebx]
mov eax, dword [eax + 0x264]
xor edx, edx
call fcn.004f1e14
pop ecx
push ebp
mov eax, dword [edi + 0x98]
push eax
mov eax, dword [edi + 0x40]
push eax
mov eax, dword [edi + 0x6c]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x358]
push eax
movzx eax, byte [0x4f2df8]
push eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x298]
mov eax, dword [ebx]
sub edx, dword [eax + 0x2a4]
mov ecx, dword [edi + 0x3c]
inc ecx
mov eax, dword [ebx]
mov eax, dword [eax + 0x264]
call fcn.004f1e14
pop ecx
push ebp
mov eax, dword [edi + 0x6c]
push eax
mov eax, dword [edi + 0x40]
push eax
mov eax, dword [edi + 0x70]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x358]
push eax
movzx eax, byte [0x4f2df8]
push eax
mov ecx, dword [edi + 0x3c]
inc ecx
mov eax, dword [ebx]
mov edx, dword [eax + 0x2e8]
mov eax, dword [ebx]
mov eax, dword [eax + 0x264]
call fcn.004f1e14
pop ecx
cmp dword [ebp - 0x10c], 0
je 0x4f2c9d
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
lea edx, [ebp - 0x110]
call fcn.004f0058
push ebp
mov eax, dword [edi + 0xa4]
inc eax
push eax
mov eax, dword [edi + 0x40]
push eax
mov eax, dword [edi + 0xa8]
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x358]
push eax
movzx eax, byte [0x4f2df8]
push eax
mov ecx, dword [edi + 0x3c]
inc ecx
mov eax, dword [ebx]
mov edx, dword [eax + 0x2d4]
mov eax, dword [ebx]
mov eax, dword [eax + 0x264]
call fcn.004f1e14
pop ecx
mov eax, dword [edi + 0x3c]
cmp eax, dword [edi + 0x40]
jge 0x4f2d30
mov eax, dword [edi + 0x70]
cmp eax, dword [edi + 0x74]
jge 0x4f2d30
mov eax, dword [ebx]
mov edx, dword [eax + 0x358]
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
mov eax, dword [eax + 0x14]
call fcn.004319cc
mov eax, dword [edi + 0x74]
push eax
lea eax, [ebp - 0x128]
push eax
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0x70]
mov eax, dword [edi + 0x3c]
call fcn.00407644
lea edx, [ebp - 0x128]
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
call fcn.00431dec
mov eax, dword [edi + 0xa4]
cmp eax, dword [edi + 0xa8]
jge 0x4f2d90
mov eax, dword [edi + 8]
cmp eax, dword [edi + 0xc]
jge 0x4f2d90
mov eax, dword [ebx]
mov edx, dword [eax + 0x358]
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
mov eax, dword [eax + 0x14]
call fcn.004319cc
mov eax, dword [edi + 0xa8]
push eax
lea eax, [ebp - 0x128]
push eax
mov ecx, dword [edi + 0x3c]
mov edx, dword [edi + 0xa4]
mov eax, dword [edi + 8]
call fcn.00407644
lea edx, [ebp - 0x128]
mov eax, dword [ebx]
mov eax, dword [eax + 0x250]
call fcn.00431dec
mov eax, dword [ebx]
test byte [eax + 0x2d1], 0x80
je 0x4f2dab
mov eax, dword [edi + 0x40]
push eax
mov ecx, dword [edi + 0x3c]
mov edx, edi
mov eax, dword [ebx]
call fcn.004f0684
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f2ded
lea eax, [ebp - 0x104]
mov edx, dword [0x4ecc6c]
call fcn.00405b80
lea eax, [ebp - 0xc]
mov edx, dword [0x4ecc40]
call fcn.00406878
lea eax, [ebp - 4]
mov edx, dword [0x4ecc14]
call fcn.00406878
ret