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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
xor eax, eax
mov dword [esp + 0x24], 0
cmp dword [ebp + 0x14], eax
mov ecx, 0x96
push ebx
mov ebx, dword [ebp + 8]
setne al
push esi
mov esi, dword [ebp + 0xc]
lea edx, [ecx + 1]
push edi
lea eax, [eax*8 + 0xc]
mov edi, dword [ebx]
add eax, dword [ebp + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x84]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x88]
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0xc0]
mov dword [esp + 0x3c], eax
mov eax, dword [ebx + 0xc8]
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0xe0]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0xe4]
mov dword [esp + 0x5c], eax
mov eax, dword [ebx + 0xf0]
mov dword [esp + 0x60], eax
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [ebx + 0x1c], eax
movzx eax, word [esi]
mov dword [esp + 0xc], edi
mov dword [esp + 0x1c], 0x86
mov dword [esp + 0x4c], 0
cmp ax, cx
je 0x4fdec4
cmp ax, dx
jne 0x4fdecb
mov dword [esp + 0x1c], eax
add esi, 2
mov eax, dword [ebx + 0xc]
mov ecx, esi
sub ecx, dword [ebx + 8]
sar ecx, 1
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x20]
push eax
push 0
push 0
push esi
push ebx
call fcn.00514b70
mov edx, dword [ebp + 0x10]
mov ecx, eax
mov eax, dword [esp + 0x28]
add esp, 0x14
mov dword [esp + 0x18], ecx
mov dword [edx + 0x18], ecx
mov dword [edx + 0x1c], eax
mov edx, 0x80
movzx eax, word [esi]
mov dword [esp + 0x28], eax
cmp eax, 0x7e
je 0x4fdf1c
cmp ax, dx
mov eax, dword [esp + 0x48]
jne 0x4fdf20
lea eax, [esp + 0x4c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x44], eax
movzx eax, word [esi + 2]
lea eax, [esi + eax*2]
mov dword [esp + 0x2c], eax
mov eax, 0x97
cmp dx, ax
jne 0x4fdf84
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c640
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [ebx]
call fcn.0051c880
push 0
push 0x40
push 0
push 2
push 0
push edi
call fcn.0051ae50
mov ecx, dword [esp + 0x68]
add esp, 0x50
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], 0x86
test ecx, ecx
jns 0x4fe0b0
mov eax, 1
mov dword [esp + 0x10], eax
cmp dx, word [esp + 0x24]
jne 0x4fdff5
movzx eax, word [esi + 4]
lea ecx, [esi + 4]
sub eax, 4
cmp eax, 0x75
ja case.0x4fdfc7.6
nop dword [eax]
nop word [eax + eax]
movzx eax, byte [eax + 0x4ff684]
jmp dword [eax*4 + 0x4ff674]
movzx eax, word [ecx + 6]
jmp 0x4fdfde
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bdc60]
lea ecx, [ecx + eax*2]
movzx eax, word [ecx]
sub eax, 4
cmp eax, 0x75
jbe 0x4fdfc0
mov eax, 1
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x20], 0
je 0x4fe001
inc eax
mov dword [esp + 0x10], eax
cmp ecx, 0xffffffff
jne 0x4fe01e
push 0
push 0xb
push dword [esp + 0x1c]
push 0x8d
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4fe030
push eax
push ebx
call fcn.004fc250
add esp, 8
cmp dword [esp + 0x20], 0
je 0x4fe04e
push dword [ebx + 0x44]
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
cmp dword [esp + 0x10], 0
jbe 0x4fe06b
push 0
push 2
push 0
push 0x8b
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x4fe1d1
push 0
push 0x40
push dword [ebx + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0051c640
push 0
push 1
push 4
push 0x8b
push 0x20
push edi
call fcn.0051c640
add esp, 0x30
jmp 0x4fe1d1
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x4fdff1
xor eax, eax
cmp dword [esp + 0x20], eax
setne al
add eax, 2
mov dword [esp + 0x10], eax
lea edi, [eax + ecx]
push edi
push ebx
call fcn.004fc250
push dword [esp + 0x1c]
push 0x8d
push 0
push 1
push 0x20
push dword [esp + 0x28]
call fcn.0051c640
lea eax, [edi*4]
push eax
push 0x40
push 0
push 0xb
push 0
push 3
push 0x60
push dword [esp + 0x48]
call fcn.0051c880
add esp, 0x40
push 0
push 3
push dword [esp + 0x1c]
push 0x8d
push 0x20
push dword [esp + 0x20]
call fcn.0051c640
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x4fe13e
push dword [ebx + 0x44]
push 0x8d
push 0
push 3
push 0x20
push dword [esp + 0x20]
call fcn.0051c640
add esp, 0x18
push 0
push 2
push 0
push 0x8b
push 0x20
push dword [esp + 0x20]
call fcn.0051c640
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x4fe19a
push 0
push 1
push 8
push 0x8b
push 0x20
push dword [esp + 0x20]
call fcn.0051c640
push 0
push 3
push 4
push 0x8b
push 0x20
push dword [esp + 0x38]
call fcn.0051c640
mov ecx, dword [ebx + 0x44]
mov eax, 0x8d
add esp, 0x30
lea edx, [eax - 0x4d]
jmp 0x4fe1a9
mov eax, 0x8b
mov ecx, 4
mov edx, 1
push 0
push edx
push ecx
push eax
push 0x20
push dword [esp + 0x20]
call fcn.0051c640
push dword [esp + 0x28]
lea eax, [edi - 1]
push eax
push 0
push esi
push ebx
call fcn.00515890
mov edi, dword [esp + 0x38]
add esp, 0x2c
cmp dword [ebp + 0x14], 0
xorps xmm0, xmm0
mov eax, dword [esp + 0x28]
mov ecx, 0x81
movlpd qword [esp + 0x70], xmm0
mov dword [esp + 0x80], 0
jne 0x4fe1ff
cmp ax, 0x7f
je 0x4fe1ff
cmp ax, cx
jne 0x4fe225
mov dword [esp + 0x30], 1
mov dword [ebx + 0x84], 1
mov dword [ebx + 0xc0], 0
mov dword [ebx + 0xe0], 0
cmp ax, 0x7e
je 0x4fe239
mov ecx, 0x80
cmp ax, cx
je 0x4fe239
xor eax, eax
jmp 0x4fe23e
mov eax, 1
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 0x88], eax
lea eax, [ebx + 0xe4]
mov dword [ebx + 0xe4], 0
mov dword [esp + 0x64], eax
nop dword [eax]
mov dword [ebx + 0xc8], 0
mov dword [ebx + 0xf0], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
cmp word [esi], 0x78
jne 0x4fe2ab
cmp dword [esp + 0x10], 0
jbe 0x4fe2ab
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c640
mov ecx, dword [esp + 0x44]
add esp, 0x18
lea eax, [esp + 0x70]
mov dword [esp + 0x80], esi
push eax
push ecx
lea eax, [esi + 4]
mov esi, dword [ebp + 8]
push eax
push esi
call fcn.00506db0
add esp, 0x10
cmp dword [edi], 0
jne 0x4ff617
mov esi, dword [edi + 0x18]
test esi, esi
je 0x4fe2e0
mov eax, dword [esi + 8]
cmp eax, dword [edi + 0x4c]
je 0x4fe326
push 0xc
push edi
call fcn.00511ae0
mov esi, eax
add esp, 8
test esi, esi
je 0x4fe326
mov dword [esi], 0
mov eax, dword [edi + 0x4c]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4fe308
mov dword [eax], esi
jmp 0x4fe30b
mov dword [edi + 8], esi
push 2
push edi
mov dword [edi + 0x18], esi
call fcn.00511b40
add esp, 8
test eax, eax
jne 0x4fe321
xor esi, esi
jmp 0x4fe326
mov word [eax], 0
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0xf0]
mov dword [ebx + 0xc8], esi
test edx, edx
je 0x4fe360
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x4fe359
test esi, esi
je 0x4fe359
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x4fe340
mov esi, dword [esp + 0x18]
test esi, esi
jns 0x4fe426
cmp esi, 0xffffffff
jne 0x4fe39b
cmp dword [edi], 0
jne 0x4fe3bd
mov eax, dword [esp + 0x14]
add eax, 0x20
push eax
push 0x8d
push 0
push 0xb
push 1
push edi
call fcn.00511740
add esp, 0x18
test eax, eax
je 0x4fe3bd
mov byte [eax], 0x8b
jmp 0x4fe3bd
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4fe3bd
shl eax, 2
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [ebx]
call fcn.0051c880
add esp, 0x20
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4fe52c
cmp dword [edi], 0
jne 0x4fe52c
mov esi, dword [ebx + 0x44]
push 0xfffffffffffffffc
push 0x8b
push 0
push 0xe
push 1
push edi
add esi, 0x20
call fcn.00511740
add esp, 0x18
test eax, eax
je 0x4fe524
push esi
push 0x8d
push 0
push 0xe
push 1
push edi
mov byte [eax], 0x8b
call fcn.00511740
mov esi, dword [esp + 0x30]
add esp, 0x18
mov ecx, dword [esp + 0x20]
test eax, eax
je 0x4fe52c
mov byte [eax], 0x89
jmp 0x4fe52c
mov eax, dword [esp + 0x28]
cmp ax, 0x7f
je 0x4fe43a
mov ecx, 0x81
cmp ax, cx
jne 0x4fe440
cmp dword [ebp + 0x14], 0
je 0x4fe48d
lea eax, [esi*4 + 4]
push eax
push 0x40
push dword [esp + 0x1c]
push 0x8d
push 0
push 0xb
push 0x62
push edi
call fcn.0051c880
mov ecx, dword [esp + 0x40]
add esp, 0x20
test ecx, ecx
je 0x4fe52c
push 0xfffffffffffffffc
push 0x8b
push dword [ebx + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
jmp 0x4fe528
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x4fe4cf
mov eax, 0xfffffffe
sub eax, esi
shl eax, 2
push eax
push 0x8b
push dword [ebx + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
push 0x23
push edi
call fcn.0051c380
add esp, 8
mov esi, eax
cmp dword [edi], 0
jne 0x4fe501
push 8
push edi
call fcn.00511ae0
add esp, 8
test eax, eax
je 0x4fe501
mov ecx, dword [ebx + 0xfc]
mov dword [eax + 4], ecx
mov dword [eax], esi
mov dword [ebx + 0xfc], eax
mov esi, dword [esp + 0x18]
lea eax, [esi*4 - 4]
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push edi
call fcn.0051c880
add esp, 0x20
jmp 0x4fe528
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp ax, 0x7f
je 0x4fe544
mov edx, 0x81
cmp ax, dx
jne 0x4fe643
cmp dword [ebp + 0x14], 0
je 0x4fe572
cmp dword [esp + 0x10], 0
jbe 0x4fe643
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*4 - 8]
push eax
push 0x8b
push 0
push 2
jmp 0x4fe638
mov eax, 0x96
cmp word [esp + 0x1c], ax
jne 0x4fe61d
test esi, esi
jns 0x4fe59b
lea esi, [eax - 0xb]
xor edx, edx
mov eax, dword [esp + 0x10]
mov ecx, 2
neg eax
shl eax, 2
jmp 0x4fe5e5
or eax, 0xffffffff
sub eax, esi
shl eax, 2
push eax
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c640
mov eax, dword [esp + 0x28]
add eax, esi
neg eax
shl eax, 2
push eax
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c640
mov edx, dword [esp + 0x44]
add esp, 0x30
mov ecx, 0x8d
mov esi, 1
xor eax, eax
push eax
push esi
push edx
push ecx
push 0x20
push edi
call fcn.0051c640
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push edi
call fcn.0051c880
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0051c640
add esp, 0x50
jmp 0x4fe643
test esi, esi
js 0x4fe643
or eax, 0xffffffff
sub eax, esi
shl eax, 2
push eax
push 0x8b
push dword [esp + 0x1c]
push 0x8d
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
push 0x22
push edi
call fcn.0051c380
add esp, 8
mov esi, eax
cmp dword [edi], 0
jne 0x4fe671
push 8
push edi
call fcn.00511ae0
add esp, 8
test eax, eax
je 0x4fe671
mov edx, dword [esp + 0x44]
mov ecx, dword [edx]
mov dword [eax + 4], ecx
mov dword [eax], esi
mov dword [edx], eax
mov esi, dword [ebp + 8]
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x24], ebx
mov edi, dword [esi]
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], eax
test ebx, ebx
je 0x4fe890
cmp dword [ebx + 4], 0
je 0x4fe723
cmp dword [edi], 0
je 0x4fe6a4
xor esi, esi
jmp 0x4fe6f9
mov esi, dword [edi + 0x18]
test esi, esi
je 0x4fe6b3
mov eax, dword [esi + 8]
cmp eax, dword [edi + 0x4c]
je 0x4fe6f9
push 0xc
push edi
call fcn.00511ae0
mov esi, eax
add esp, 8
test esi, esi
je 0x4fe6f9
mov dword [esi], 0
mov eax, dword [edi + 0x4c]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4fe6db
mov dword [eax], esi
jmp 0x4fe6de
mov dword [edi + 8], esi
push 2
push edi
mov dword [edi + 0x18], esi
call fcn.00511b40
add esp, 8
test eax, eax
jne 0x4fe6f4
xor esi, esi
jmp 0x4fe6f9
mov word [eax], 0
mov edx, dword [ebx + 4]
test edx, edx
je 0x4fe720
mov ecx, dword [edx]
test ecx, ecx
je 0x4fe719
test esi, esi
je 0x4fe719
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x4fe700
mov esi, dword [ebp + 8]
mov ecx, dword [ebx + 0x10]
movzx edx, word [ecx]
lea eax, [edx - 3]
cmp eax, 0xa5
ja case.0x4fe73e.4
movzx eax, byte [eax + 0x4ff738]
jmp dword [eax*4 + 0x4ff6fc]
push 0
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c640
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [esi]
call fcn.0051c880
push 0
push 1
push dword [esi + 0x24]
push 0x8d
push 0x20
push edi
call fcn.0051c640
add esp, 0x50
jmp case.0x4fe73e.4
push ebx
push esi
call fcn.00505350
add esp, 8
jmp case.0x4fe73e.4
push ebx
push esi
call fcn.00508810
add esp, 8
jmp case.0x4fe73e.4
mov eax, dword [esp + 0x24]
mov ebx, dword [esi]
cmp dword [eax + 0x1c], 0
jne 0x4fe835
mov esi, dword [eax + 0x18]
push 0x23
push ebx
mov edi, dword [esi + 8]
call fcn.0051c380
add esp, 8
test edi, edi
jne 0x4fe7ef
cmp dword [ebx], 0
mov edi, eax
jne 0x4fe802
push 8
push ebx
call fcn.00511ae0
add esp, 8
test eax, eax
je 0x4fe802
mov ecx, dword [esi + 0x10]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [esi + 0x10], eax
jmp 0x4fe802
test eax, eax
je 0x4fe802
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edi
or ecx, 1
mov dword [eax + 8], ecx
mov esi, dword [esp + 0x24]
push 0
push 0x40
push 0
mov esi, dword [esi + 0x14]
push 1
push 1
push ebx
call fcn.0051ae50
add esp, 0x18
test eax, eax
je 0x4fe841
test esi, esi
je 0x4fe841
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
jmp 0x4fe841
push dword [eax + 8]
push esi
call fcn.004ff7e0
add esp, 8
push ebx
call fcn.0051c410
mov ebx, dword [esp + 0x28]
add esp, 4
mov esi, eax
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x4fe877
mov ecx, dword [edx]
test ecx, ecx
je 0x4fe870
test esi, esi
je 0x4fe870
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x4fe857
mov esi, dword [ebp + 8]
mov ebx, dword [ebx]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x24], ebx
test ebx, ebx
jne 0x4fe691
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0xc]
mov dword [esi + 0x1c], eax
cmp dword [edi], 0
jne 0x4ff617
mov esi, dword [edi + 0x18]
test esi, esi
je 0x4fe8b3
mov eax, dword [esi + 8]
cmp eax, dword [edi + 0x4c]
je 0x4fee08
push 0xc
push edi
call fcn.00511ae0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4fedd3
jmp 0x4fee08
push ebx
push esi
call fcn.004fdaf0
add esp, 8
jmp case.0x4fe73e.4
push ebx
push esi
call fcn.004ffd00
add esp, 8
jmp case.0x4fe73e.4
mov eax, 0x81
push ebx
push esi
cmp word [ecx + 2], ax
jbe 0x4fe8cf
call fcn.004ffd00
add esp, 8
jmp case.0x4fe73e.4
push ebx
push esi
call fcn.00502680
add esp, 8
jmp case.0x4fe73e.4
mov eax, 0x81
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 4], 0
cmp word [ecx + 2], ax
jbe 0x4fe947
push ebx
push ecx
push esi
call fcn.005012c0
push dword [ebx + 8]
push esi
call fcn.004ffd00
add esp, 0x14
jmp case.0x4fe73e.4
mov eax, dword [ebx + 0x14]
xorps xmm0, xmm0
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x84]
push 0
push eax
push ecx
push esi
movlpd qword [esp + 0x94], xmm0
movlpd qword [esp + 0x9c], xmm0
movlpd qword [esp + 0xa8], xmm0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xa4], ecx
call fcn.004fde10
add esp, 0x10
jmp case.0x4fe73e.4
mov eax, dword [esi + 0x78]
neg eax
sbb eax, eax
and eax, 0x10
push eax
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
cmp dword [esi + 0x78], 0
je 0x4fe9d5
push 0
push 0x8b
push 0
push 3
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
cmp dword [esi + 0x78], 0
mov ecx, 0x14
mov eax, 4
cmovne eax, ecx
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [esi]
call fcn.0051c880
push 0
push 1
push dword [esi + 0x40]
push 0x8d
push 0x20
push edi
call fcn.0051c640
add esp, 0x38
cmp dword [esi + 0x78], 0
je case.0x4fe73e.4
push 0
push 3
push dword [esi + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
jmp case.0x4fe73e.4
mov esi, dword [esi]
mov ecx, edx
mov eax, 0x9e
cmp cx, ax
je 0x4fea53
mov eax, 0x9f
cmp cx, ax
jne 0x4febab
mov edi, dword [ebp + 8]
cmp dword [edi + 0x1c], 0
je 0x4feb7c
push dword [edi + 0x44]
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0051c640
push 1
push 0x40
push 0
push 1
push 0x20
push esi
call fcn.0051c640
mov eax, dword [edi + 0x1c]
push dword [eax + 0x18]
push 0x40
push 0
push 3
push 0x20
push esi
call fcn.0051c640
add esp, 0x48
push 0x22
push esi
call fcn.0051c380
push esi
mov edi, eax
call fcn.0051c410
push 0
push 0x8b
push 0
push 0xb
push 0x20
push esi
mov ebx, eax
call fcn.0051c640
push esi
call fcn.0051c410
add esp, 0x28
test edi, edi
je 0x4feae0
test eax, eax
je 0x4feae0
mov ecx, dword [edi + 8]
and ecx, 0xfffffffd
mov dword [edi + 0xc], eax
or ecx, 1
mov dword [edi + 8], ecx
push 0
push 1
push 4
push 0x8b
push 1
push esi
call fcn.0051ae50
add esp, 0x18
test eax, eax
je 0x4feb0d
test ebx, ebx
je 0x4feb0d
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebx
or ecx, 1
mov dword [eax + 8], ecx
push 0
push 3
push 8
push 0x8b
push 1
push esi
call fcn.0051ae50
add esp, 0x18
test eax, eax
je 0x4feb3a
test ebx, ebx
je 0x4feb3a
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebx
or ecx, 1
mov dword [eax + 8], ecx
push 0x22
push esi
call fcn.0051c380
mov ecx, dword [ebp + 8]
add esp, 8
cmp dword [esi], 0
mov ebx, eax
mov edi, dword [ecx + 0x1c]
jne 0x4fedc8
push 8
push esi
call fcn.00511ae0
mov esi, dword [ebp + 8]
add esp, 8
test eax, eax
je 0x4feb73
mov ecx, dword [edi + 0x1c]
mov dword [eax + 4], ecx
mov dword [eax], ebx
mov dword [edi + 0x1c], eax
mov ebx, dword [esp + 0x24]
jmp case.0x4fe73e.4
cmp dword [edi + 0x84], 0
jne 0x4febb7
cmp dword [edi + 0x88], 0
je 0x4febae
push 0x22
push esi
call fcn.0051c380
push eax
push dword [esp + 0x70]
push esi
call fcn.004fc220
add esp, 0x14
mov esi, edi
jmp case.0x4fe73e.4
mov edi, dword [ebp + 8]
cmp dword [edi + 0x84], 0
je 0x4fec22
mov edi, dword [edi + 0xc0]
push 0x22
push esi
call fcn.0051c380
add esp, 8
test edi, edi
jne 0x4fec03
cmp dword [esi], 0
mov edi, eax
jne 0x4fe877
push 8
push esi
call fcn.00511ae0
mov esi, dword [ebp + 8]
add esp, 8
test eax, eax
je case.0x4fe73e.4
mov ecx, dword [esi + 0xe0]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [esi + 0xe0], eax
jmp case.0x4fe73e.4
mov esi, dword [ebp + 8]
test eax, eax
je case.0x4fe73e.4
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edi
or ecx, 1
mov dword [eax + 8], ecx
jmp case.0x4fe73e.4
mov eax, 0x9d
cmp cx, ax
jne 0x4fec91
push dword [edi + 0x44]
push 0x8d
push 0
push 1
push 0x20
push esi
call fcn.0051c640
mov eax, dword [ebx + 0x10]
add eax, 4
push eax
push 0x40
push 0
push 2
push 0x20
push esi
call fcn.0051c640
push 0x50f100
push 0x40
push 0x111
push 0x24
push esi
call fcn.0051bcc0
add esp, 0x44
push 0
push 1
push 0
push 2
push 0x20
push esi
call fcn.0051c640
push 0
push 0x40
push 0
push 1
push 1
push esi
call fcn.0051ae50
add esp, 0x30
jmp 0x4fecc0
mov edx, 0x9c
mov eax, 0x8b
cmp cx, dx
mov ecx, 0x40
push 0
cmovne eax, ecx
push eax
push 0
push 2
push 0x20
push esi
call fcn.0051c640
push 0x22
push esi
call fcn.0051c380
add esp, 0x20
cmp dword [esi], 0
mov edi, eax
jne 0x4fe877
push 8
push esi
call fcn.00511ae0
mov esi, dword [ebp + 8]
add esp, 8
test eax, eax
je case.0x4fe73e.4
mov ecx, dword [esi + 0x118]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [esi + 0x118], eax
jmp case.0x4fe73e.4
cmp dword [esi + 0x84], 0
jne 0x4fed13
push 0xffffffffffffffff
push 0x40
push 0
push 1
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
mov esi, dword [esi + 0xc0]
push 0x22
push edi
call fcn.0051c380
add esp, 8
test esi, esi
jne 0x4fed62
cmp dword [edi], 0
mov esi, eax
jne 0x4fe877
push 8
push edi
call fcn.00511ae0
add esp, 8
test eax, eax
je 0x4fe877
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0xe0]
mov dword [eax], esi
mov esi, dword [ebp + 8]
mov dword [eax + 4], ecx
mov dword [esi + 0xe0], eax
jmp case.0x4fe73e.4
test eax, eax
je 0x4fe877
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
jmp 0x4fe877
push edi
call fcn.0051c410
mov edx, dword [ebx + 0xc]
add esp, 4
mov esi, eax
test edx, edx
je 0x4fe877
mov ecx, dword [edx]
test ecx, ecx
je 0x4fedad
test esi, esi
je 0x4fedad
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x4fed94
jmp 0x4fe877
push ebx
push esi
call fcn.0050a7b0
add esp, 8
jmp case.0x4fe73e.4
mov ebx, dword [esp + 0x24]
mov esi, ecx
jmp case.0x4fe73e.4
mov dword [esi], 0
mov eax, dword [edi + 0x4c]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4fedea
mov dword [eax], esi
jmp 0x4feded
mov dword [edi + 8], esi
push 2
push edi
mov dword [edi + 0x18], esi
call fcn.00511b40
add esp, 8
test eax, eax
jne 0x4fee03
xor esi, esi
jmp 0x4fee08
mov word [eax], 0
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x4fee30
mov ecx, dword [edx]
test ecx, ecx
je 0x4fee29
test esi, esi
je 0x4fee29
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x4fee10
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ebp + 8]
cmp word [ecx], 0x78
jne 0x4fee4f
movzx eax, word [ecx + 2]
mov esi, ecx
lea ecx, [ecx + eax*2]
mov dword [esp + 0x2c], ecx
jmp 0x4fe260
cmp dword [esp + 0x30], 0
je 0x4fee62
mov eax, dword [ebx + 0xe0]
mov dword [ebx + 0xe4], eax
cmp dword [ebx + 0xe4], 0
je 0x4fef46
push 0x22
push edi
call fcn.0051c380
push dword [esp + 0x14]
mov edi, eax
call fcn.0051c410
mov edx, dword [ebx + 0xe4]
add esp, 0xc
mov esi, eax
test edx, edx
je 0x4feeb1
mov ecx, dword [edx]
test ecx, ecx
je 0x4feeaa
test esi, esi
je 0x4feeaa
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x4fee91
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0x10]
lea esi, [eax*4]
jge 0x4feece
mov ecx, dword [esp + 0x14]
mov eax, 0x8d
jmp 0x4fef0f
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push dword [esp + 0x20]
call fcn.0051c640
push 0x23
push dword [esp + 0x28]
call fcn.0051c380
push eax
lea eax, [ebx + 0xfc]
push eax
push dword [esp + 0x34]
call fcn.004fc220
add esp, 0x2c
xor ecx, ecx
mov eax, 0xb
add esi, 4
push esi
mov esi, dword [esp + 0x10]
push 0x40
push ecx
push eax
push 0
push 0xb
push 0x62
push esi
call fcn.0051c880
push esi
call fcn.0051c410
add esp, 0x24
test edi, edi
je 0x4fef44
test eax, eax
je 0x4fef44
mov ecx, dword [edi + 8]
and ecx, 0xfffffffd
mov dword [edi + 0xc], eax
or ecx, 1
mov dword [edi + 8], ecx
mov edi, esi
cmp dword [esp + 0x20], 0
je 0x4fef67
push 4
push 0x8b
push dword [ebx + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
mov eax, dword [esp + 0x28]
cmp ax, 0x7e
je 0x4ff143
mov ecx, 0x80
cmp ax, cx
je 0x4ff143
cmp dword [esp + 0x18], 0
jge 0x4feff4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4fefac
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c640
mov eax, dword [esp + 0x28]
add esp, 0x18
mov esi, 0x86
cmp word [esp + 0x1c], si
je 0x4fefdd
cmp eax, 2
jne 0x4fefc8
push 1
push ebx
call fcn.00514a10
add esp, 8
mov ecx, 0x8b
mov dword [esp + 0x14], 0
lea edx, [ecx - 0x4b]
jmp 0x4ff06d
test eax, eax
je 0x4ff5b5
push eax
push ebx
call fcn.00514a10
add esp, 8
jmp 0x4ff5b5
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c640
mov esi, dword [esp + 0x28]
lea eax, [esi*4 - 4]
push eax
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c640
mov eax, dword [esp + 0x48]
add esp, 0x30
add eax, esi
mov esi, 0x86
cmp word [esp + 0x1c], si
je 0x4ff059
dec eax
push eax
push ebx
call fcn.00514a10
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0051c640
add esp, 0x20
jmp 0x4ff063
push eax
push ebx
call fcn.00514a10
add esp, 8
mov ecx, 0x8d
mov edx, 1
push 0
push edx
push dword [esp + 0x1c]
mov eax, edi
push ecx
push 0x20
push eax
call fcn.0051c640
mov eax, dword [esp + 0x34]
mov ecx, 0x96
add esp, 0x18
cmp ax, cx
jne 0x4ff0a1
push edi
call fcn.0051c410
mov esi, dword [ebp + 0x10]
add esp, 4
mov dword [esi + 0x20], eax
jmp 0x4ff102
mov ecx, 0x97
cmp ax, cx
jne 0x4ff0f9
mov esi, dword [ebp + 0x10]
push 0x22
push edi
mov esi, dword [esi + 0x20]
call fcn.0051c380
add esp, 8
test eax, eax
je 0x4ff0d3
test esi, esi
je 0x4ff0d3
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
push edi
call fcn.0051c410
mov edx, dword [esp + 0x38]
add esp, 4
test edx, edx
je 0x4ff102
test eax, eax
je 0x4ff102
mov ecx, dword [edx + 8]
and ecx, 0xfffffffd
mov dword [edx + 0xc], eax
or ecx, 1
mov dword [edx + 8], ecx
jmp 0x4ff102
cmp ax, si
je 0x4ff5b5
push edi
call fcn.0051c410
mov edi, dword [ebp + 0x10]
add esp, 4
mov esi, eax
mov edx, dword [edi + 0xc]
test edx, edx
je 0x4ff137
mov ecx, dword [edx]
test ecx, ecx
je 0x4ff130
test esi, esi
je 0x4ff130
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x4ff117
mov dword [edi + 0xc], 0
jmp 0x4ff5b5
cmp dword [ebp + 0x14], 0
mov esi, dword [esp + 0x10]
je 0x4ff151
test esi, esi
jne 0x4ff15f
mov eax, dword [esp + 0x1c]
mov ecx, 0x96
cmp ax, cx
jne 0x4ff17e
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c640
mov eax, dword [esp + 0x34]
add esp, 0x18
mov ecx, 0x96
cmp dword [esp + 0x18], 0
jge 0x4ff1e0
cmp ax, cx
jne 0x4ff1bf
cmp esi, 2
jne 0x4ff19a
push 1
push ebx
call fcn.00514a10
add esp, 8
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0051c640
push 0x22
push edi
call fcn.0051c380
add esp, 0x20
mov edi, eax
jmp 0x4ff27a
test esi, esi
je 0x4ff250
push esi
push ebx
call fcn.00514a10
push 0x22
push edi
call fcn.0051c380
add esp, 0x10
mov edi, eax
jmp 0x4ff269
lea eax, [esi*4 - 4]
push eax
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c640
mov eax, dword [esp + 0x30]
mov ecx, 0x96
add esp, 0x18
add eax, esi
cmp word [esp + 0x1c], cx
jne 0x4ff22e
dec eax
push eax
push ebx
call fcn.00514a10
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0051c640
add esp, 0x20
jmp 0x4ff238
push eax
push ebx
call fcn.00514a10
add esp, 8
push 0
push 1
push dword [esp + 0x1c]
push 0x8d
push 0x20
push edi
call fcn.0051c640
add esp, 0x18
push 0x22
push edi
call fcn.0051c380
mov edi, eax
add esp, 8
mov eax, 0x96
cmp word [esp + 0x1c], ax
je 0x4ff27a
push edi
push dword [esp + 0x4c]
push dword [esp + 0x14]
call fcn.004fc220
add esp, 0xc
push dword [esp + 0xc]
call fcn.0051c410
mov edx, dword [esp + 0x50]
add esp, 4
mov esi, eax
test edx, edx
je 0x4ff2b0
mov ecx, dword [edx]
test ecx, ecx
je 0x4ff2a9
test esi, esi
je 0x4ff2a9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x4ff290
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
test eax, eax
jns 0x4ff36a
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4ff2e2
neg eax
shl eax, 2
push eax
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0051c640
add esp, 0x18
mov eax, dword [esp + 0x1c]
mov ecx, 0x96
cmp ax, cx
jne 0x4ff32d
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0051c880
add esp, 0x20
cmp dword [esp + 0x10], 2
jne 0x4ff477
push 0
push 2
push 0
push 0x8b
push 0x20
push esi
call fcn.0051c640
add esp, 0x18
jmp 0x4ff477
mov ecx, 0x97
cmp ax, cx
jne 0x4ff5b5
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0051c880
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0051c640
add esp, 0x38
jmp 0x4ff4b5
mov ecx, 0x86
cmp word [esp + 0x1c], cx
jne 0x4ff3bd
lea eax, [eax*4 + 4]
push eax
push 0x40
push dword [esp + 0x1c]
push 0x8d
push 0
push 0xb
push 0x62
push esi
call fcn.0051c880
mov eax, dword [esp + 0x30]
mov ecx, 4
shl eax, 2
sub ecx, eax
push ecx
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0051c640
add esp, 0x38
jmp 0x4ff5b5
lea eax, [eax*4 + 8]
push eax
push 0x40
push dword [esp + 0x1c]
push 0x8d
push 0
push 0xb
push 0x62
push esi
call fcn.0051c880
add esp, 0x20
cmp dword [esp + 0x10], 2
jne 0x4ff425
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0051c640
mov eax, dword [esp + 0x34]
mov edx, 0x97
add esp, 0x18
cmp ax, dx
jne 0x4ff46d
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0051c640
add esp, 0x18
jmp 0x4ff4b5
push 0xfffffffffffffffc
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0051c640
mov eax, 0x96
mov ecx, 2
cmp word [esp + 0x34], ax
mov eax, 0x40
push 0
cmove eax, ecx
push eax
push 0
push 0x8b
push 0x20
push esi
call fcn.0051c640
mov eax, dword [esp + 0x4c]
add esp, 0x30
mov edx, 0x97
mov ecx, 0x96
cmp ax, cx
jne 0x4ff4ac
push esi
call fcn.0051c410
mov esi, dword [ebp + 0x10]
add esp, 4
mov ecx, eax
mov dword [esi + 0x20], ecx
test edi, edi
je 0x4ff5b5
test ecx, ecx
je 0x4ff5b5
mov eax, dword [edi + 8]
and eax, 0xfffffffd
mov dword [edi + 0xc], ecx
or eax, 1
mov dword [edi + 8], eax
jmp 0x4ff5b5
cmp ax, dx
jne 0x4ff5b5
mov esi, dword [ebp + 0x10]
mov edi, dword [esp + 0xc]
push 0x22
push edi
mov esi, dword [esi + 0x20]
call fcn.0051c380
add esp, 8
test eax, eax
je 0x4ff4e1
test esi, esi
je 0x4ff4e1
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
push edi
call fcn.0051c410
mov edx, dword [esp + 0x38]
add esp, 4
test edx, edx
je 0x4ff505
test eax, eax
je 0x4ff505
mov ecx, dword [edx + 8]
and ecx, 0xfffffffd
mov dword [edx + 0xc], eax
or ecx, 1
mov dword [edx + 8], ecx
mov esi, dword [esp + 0x18]
test esi, esi
js 0x4ff580
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push edi
call fcn.0051c640
push 0x23
push edi
call fcn.0051c380
push eax
lea eax, [ebx + 0xfc]
push eax
push edi
call fcn.004fc220
push 0xfffffffffffffff8
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c640
add esp, 0x44
lea eax, [esi*4 - 4]
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push edi
call fcn.0051c880
push 0
push 1
push dword [esp + 0x3c]
push 0x8d
push 0x20
push edi
call fcn.0051c640
add esp, 0x38
push edi
call fcn.0051c410
mov esi, eax
add esp, 4
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x4ff5b5
mov ecx, dword [edx]
test ecx, ecx
je 0x4ff5ae
test esi, esi
je 0x4ff5ae
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x4ff595
cmp dword [esp + 0x30], 0
je 0x4ff5da
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x84], eax
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0xc0], eax
mov eax, dword [esp + 0x40]
mov dword [ebx + 0xe0], eax
mov eax, dword [esp + 0x50]
mov dword [ebx + 0x88], eax
mov eax, dword [esp + 0x54]
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x58]
mov dword [ebx + 0xc8], eax
mov eax, dword [esp + 0x5c]
mov dword [ebx + 0xe4], eax
mov eax, dword [esp + 0x60]
mov dword [ebx + 0xf0], eax
mov eax, dword [esp + 0x2c]
add eax, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x30], 0
je 0x4ff63c
mov eax, dword [esp + 0x38]
mov dword [esi + 0x84], eax
mov eax, dword [esp + 0x3c]
mov dword [esi + 0xc0], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 0xe0], eax
mov eax, dword [esp + 0x50]
mov dword [esi + 0x88], eax
mov eax, dword [esp + 0x54]
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x58]
mov dword [esi + 0xc8], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + 0xe4], eax
mov eax, dword [esp + 0x60]
pop edi
mov dword [esi + 0xf0], eax
xor eax, eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret