Function at 0x4fdbf0
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 0x4fdca4
cmp ax, dx
jne 0x4fdcab
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.00514950
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 0x4fdcfc
cmp ax, dx
mov eax, dword [esp + 0x48]
jne 0x4fdd00
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 0x4fdd64
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c420
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [ebx]
call fcn.0051c660
push 0
push 0x40
push 0
push 2
push 0
push edi
call fcn.0051ac30
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 0x4fde90
mov eax, 1
mov dword [esp + 0x10], eax
cmp dx, word [esp + 0x24]
jne 0x4fddd5
movzx eax, word [esi + 4]
lea ecx, [esi + 4]
sub eax, 4
cmp eax, 0x75
ja case.0x4fdda7.6
nop dword [eax]
nop word [eax + eax]
movzx eax, byte [eax + 0x4ff464]
jmp dword [eax*4 + 0x4ff454]
movzx eax, word [ecx + 6]
jmp 0x4fddbe
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6bf820]
lea ecx, [ecx + eax*2]
movzx eax, word [ecx]
sub eax, 4
cmp eax, 0x75
jbe 0x4fdda0
mov eax, 1
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x20], 0
je 0x4fdde1
inc eax
mov dword [esp + 0x10], eax
cmp ecx, 0xffffffff
jne 0x4fddfe
push 0
push 0xb
push dword [esp + 0x1c]
push 0x8d
push 0x20
push edi
call fcn.0051c420
add esp, 0x18
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4fde10
push eax
push ebx
call fcn.004fc030
add esp, 8
cmp dword [esp + 0x20], 0
je 0x4fde2e
push dword [ebx + 0x44]
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.0051c420
add esp, 0x18
cmp dword [esp + 0x10], 0
jbe 0x4fde4b
push 0
push 2
push 0
push 0x8b
push 0x20
push edi
call fcn.0051c420
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x4fdfb1
push 0
push 0x40
push dword [ebx + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0051c420
push 0
push 1
push 4
push 0x8b
push 0x20
push edi
call fcn.0051c420
add esp, 0x30
jmp 0x4fdfb1
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x4fddd1
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.004fc030
push dword [esp + 0x1c]
push 0x8d
push 0
push 1
push 0x20
push dword [esp + 0x28]
call fcn.0051c420
lea eax, [edi*4]
push eax
push 0x40
push 0
push 0xb
push 0
push 3
push 0x60
push dword [esp + 0x48]
call fcn.0051c660
add esp, 0x40
push 0
push 3
push dword [esp + 0x1c]
push 0x8d
push 0x20
push dword [esp + 0x20]
call fcn.0051c420
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x4fdf1e
push dword [ebx + 0x44]
push 0x8d
push 0
push 3
push 0x20
push dword [esp + 0x20]
call fcn.0051c420
add esp, 0x18
push 0
push 2
push 0
push 0x8b
push 0x20
push dword [esp + 0x20]
call fcn.0051c420
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x4fdf7a
push 0
push 1
push 8
push 0x8b
push 0x20
push dword [esp + 0x20]
call fcn.0051c420
push 0
push 3
push 4
push 0x8b
push 0x20
push dword [esp + 0x38]
call fcn.0051c420
mov ecx, dword [ebx + 0x44]
mov eax, 0x8d
add esp, 0x30
lea edx, [eax - 0x4d]
jmp 0x4fdf89
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.0051c420
push dword [esp + 0x28]
lea eax, [edi - 1]
push eax
push 0
push esi
push ebx
call fcn.00515670
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 0x4fdfdf
cmp ax, 0x7f
je 0x4fdfdf
cmp ax, cx
jne 0x4fe005
mov dword [esp + 0x30], 1
mov dword [ebx + 0x84], 1
mov dword [ebx + 0xc0], 0
mov dword [ebx + 0xe0], 0
cmp ax, 0x7e
je 0x4fe019
mov ecx, 0x80
cmp ax, cx
je 0x4fe019
xor eax, eax
jmp 0x4fe01e
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 0x4fe08b
cmp dword [esp + 0x10], 0
jbe 0x4fe08b
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c420
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.00506b90
add esp, 0x10
cmp dword [edi], 0
jne 0x4ff3f7
mov esi, dword [edi + 0x18]
test esi, esi
je 0x4fe0c0
mov eax, dword [esi + 8]
cmp eax, dword [edi + 0x4c]
je 0x4fe106
push 0xc
push edi
call fcn.005118c0
mov esi, eax
add esp, 8
test esi, esi
je 0x4fe106
mov dword [esi], 0
mov eax, dword [edi + 0x4c]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4fe0e8
mov dword [eax], esi
jmp 0x4fe0eb
mov dword [edi + 8], esi
push 2
push edi
mov dword [edi + 0x18], esi
call fcn.00511920
add esp, 8
test eax, eax
jne 0x4fe101
xor esi, esi
jmp 0x4fe106
mov word [eax], 0
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0xf0]
mov dword [ebx + 0xc8], esi
test edx, edx
je 0x4fe140
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x4fe139
test esi, esi
je 0x4fe139
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 0x4fe120
mov esi, dword [esp + 0x18]
test esi, esi
jns 0x4fe206
cmp esi, 0xffffffff
jne 0x4fe17b
cmp dword [edi], 0
jne 0x4fe19d
mov eax, dword [esp + 0x14]
add eax, 0x20
push eax
push 0x8d
push 0
push 0xb
push 1
push edi
call fcn.00511520
add esp, 0x18
test eax, eax
je 0x4fe19d
mov byte [eax], 0x8b
jmp 0x4fe19d
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4fe19d
shl eax, 2
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [ebx]
call fcn.0051c660
add esp, 0x20
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4fe30c
cmp dword [edi], 0
jne 0x4fe30c
mov esi, dword [ebx + 0x44]
push 0xfffffffffffffffc
push 0x8b
push 0
push 0xe
push 1
push edi
add esi, 0x20
call fcn.00511520
add esp, 0x18
test eax, eax
je 0x4fe304
push esi
push 0x8d
push 0
push 0xe
push 1
push edi
mov byte [eax], 0x8b
call fcn.00511520
mov esi, dword [esp + 0x30]
add esp, 0x18
mov ecx, dword [esp + 0x20]
test eax, eax
je 0x4fe30c
mov byte [eax], 0x89
jmp 0x4fe30c
mov eax, dword [esp + 0x28]
cmp ax, 0x7f
je 0x4fe21a
mov ecx, 0x81
cmp ax, cx
jne 0x4fe220
cmp dword [ebp + 0x14], 0
je 0x4fe26d
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.0051c660
mov ecx, dword [esp + 0x40]
add esp, 0x20
test ecx, ecx
je 0x4fe30c
push 0xfffffffffffffffc
push 0x8b
push dword [ebx + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0051c420
add esp, 0x18
jmp 0x4fe308
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push edi
call fcn.0051c420
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x4fe2af
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.0051c420
add esp, 0x18
push 0x23
push edi
call fcn.0051c160
add esp, 8
mov esi, eax
cmp dword [edi], 0
jne 0x4fe2e1
push 8
push edi
call fcn.005118c0
add esp, 8
test eax, eax
je 0x4fe2e1
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.0051c660
add esp, 0x20
jmp 0x4fe308
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp ax, 0x7f
je 0x4fe324
mov edx, 0x81
cmp ax, dx
jne 0x4fe423
cmp dword [ebp + 0x14], 0
je 0x4fe352
cmp dword [esp + 0x10], 0
jbe 0x4fe423
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*4 - 8]
push eax
push 0x8b
push 0
push 2
jmp 0x4fe418
mov eax, 0x96
cmp word [esp + 0x1c], ax
jne 0x4fe3fd
test esi, esi
jns 0x4fe37b
lea esi, [eax - 0xb]
xor edx, edx
mov eax, dword [esp + 0x10]
mov ecx, 2
neg eax
shl eax, 2
jmp 0x4fe3c5
or eax, 0xffffffff
sub eax, esi
shl eax, 2
push eax
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c420
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.0051c420
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.0051c420
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push edi
call fcn.0051c660
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0051c420
add esp, 0x50
jmp 0x4fe423
test esi, esi
js 0x4fe423
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.0051c420
add esp, 0x18
push 0x22
push edi
call fcn.0051c160
add esp, 8
mov esi, eax
cmp dword [edi], 0
jne 0x4fe451
push 8
push edi
call fcn.005118c0
add esp, 8
test eax, eax
je 0x4fe451
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 0x4fe670
cmp dword [ebx + 4], 0
je 0x4fe503
cmp dword [edi], 0
je 0x4fe484
xor esi, esi
jmp 0x4fe4d9
mov esi, dword [edi + 0x18]
test esi, esi
je 0x4fe493
mov eax, dword [esi + 8]
cmp eax, dword [edi + 0x4c]
je 0x4fe4d9
push 0xc
push edi
call fcn.005118c0
mov esi, eax
add esp, 8
test esi, esi
je 0x4fe4d9
mov dword [esi], 0
mov eax, dword [edi + 0x4c]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4fe4bb
mov dword [eax], esi
jmp 0x4fe4be
mov dword [edi + 8], esi
push 2
push edi
mov dword [edi + 0x18], esi
call fcn.00511920
add esp, 8
test eax, eax
jne 0x4fe4d4
xor esi, esi
jmp 0x4fe4d9
mov word [eax], 0
mov edx, dword [ebx + 4]
test edx, edx
je 0x4fe500
mov ecx, dword [edx]
test ecx, ecx
je 0x4fe4f9
test esi, esi
je 0x4fe4f9
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 0x4fe4e0
mov esi, dword [ebp + 8]
mov ecx, dword [ebx + 0x10]
movzx edx, word [ecx]
lea eax, [edx - 3]
cmp eax, 0xa5
ja case.0x4fe51e.4
movzx eax, byte [eax + 0x4ff518]
jmp dword [eax*4 + 0x4ff4dc]
push 0
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c420
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [esi]
call fcn.0051c660
push 0
push 1
push dword [esi + 0x24]
push 0x8d
push 0x20
push edi
call fcn.0051c420
add esp, 0x50
jmp case.0x4fe51e.4
push ebx
push esi
call fcn.00505130
add esp, 8
jmp case.0x4fe51e.4
push ebx
push esi
call fcn.005085f0
add esp, 8
jmp case.0x4fe51e.4
mov eax, dword [esp + 0x24]
mov ebx, dword [esi]
cmp dword [eax + 0x1c], 0
jne 0x4fe615
mov esi, dword [eax + 0x18]
push 0x23
push ebx
mov edi, dword [esi + 8]
call fcn.0051c160
add esp, 8
test edi, edi
jne 0x4fe5cf
cmp dword [ebx], 0
mov edi, eax
jne 0x4fe5e2
push 8
push ebx
call fcn.005118c0
add esp, 8
test eax, eax
je 0x4fe5e2
mov ecx, dword [esi + 0x10]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [esi + 0x10], eax
jmp 0x4fe5e2
test eax, eax
je 0x4fe5e2
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.0051ac30
add esp, 0x18
test eax, eax
je 0x4fe621
test esi, esi
je 0x4fe621
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
jmp 0x4fe621
push dword [eax + 8]
push esi
call fcn.004ff5c0
add esp, 8
push ebx
call fcn.0051c1f0
mov ebx, dword [esp + 0x28]
add esp, 4
mov esi, eax
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x4fe657
mov ecx, dword [edx]
test ecx, ecx
je 0x4fe650
test esi, esi
je 0x4fe650
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 0x4fe637
mov esi, dword [ebp + 8]
mov ebx, dword [ebx]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x24], ebx
test ebx, ebx
jne 0x4fe471
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0xc]
mov dword [esi + 0x1c], eax
cmp dword [edi], 0
jne 0x4ff3f7
mov esi, dword [edi + 0x18]
test esi, esi
je 0x4fe693
mov eax, dword [esi + 8]
cmp eax, dword [edi + 0x4c]
je 0x4febe8
push 0xc
push edi
call fcn.005118c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4febb3
jmp 0x4febe8
push ebx
push esi
call fcn.004fd8d0
add esp, 8
jmp case.0x4fe51e.4
push ebx
push esi
call fcn.004ffae0
add esp, 8
jmp case.0x4fe51e.4
mov eax, 0x81
push ebx
push esi
cmp word [ecx + 2], ax
jbe 0x4fe6af
call fcn.004ffae0
add esp, 8
jmp case.0x4fe51e.4
push ebx
push esi
call fcn.00502460
add esp, 8
jmp case.0x4fe51e.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 0x4fe727
push ebx
push ecx
push esi
call fcn.005010a0
push dword [ebx + 8]
push esi
call fcn.004ffae0
add esp, 0x14
jmp case.0x4fe51e.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.004fdbf0
add esp, 0x10
jmp case.0x4fe51e.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.0051c420
add esp, 0x18
cmp dword [esi + 0x78], 0
je 0x4fe7b5
push 0
push 0x8b
push 0
push 3
push 0x20
push edi
call fcn.0051c420
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.0051c660
push 0
push 1
push dword [esi + 0x40]
push 0x8d
push 0x20
push edi
call fcn.0051c420
add esp, 0x38
cmp dword [esi + 0x78], 0
je case.0x4fe51e.4
push 0
push 3
push dword [esi + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0051c420
add esp, 0x18
jmp case.0x4fe51e.4
mov esi, dword [esi]
mov ecx, edx
mov eax, 0x9e
cmp cx, ax
je 0x4fe833
mov eax, 0x9f
cmp cx, ax
jne 0x4fe98b
mov edi, dword [ebp + 8]
cmp dword [edi + 0x1c], 0
je 0x4fe95c
push dword [edi + 0x44]
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0051c420
push 1
push 0x40
push 0
push 1
push 0x20
push esi
call fcn.0051c420
mov eax, dword [edi + 0x1c]
push dword [eax + 0x18]
push 0x40
push 0
push 3
push 0x20
push esi
call fcn.0051c420
add esp, 0x48
push 0x22
push esi
call fcn.0051c160
push esi
mov edi, eax
call fcn.0051c1f0
push 0
push 0x8b
push 0
push 0xb
push 0x20
push esi
mov ebx, eax
call fcn.0051c420
push esi
call fcn.0051c1f0
add esp, 0x28
test edi, edi
je 0x4fe8c0
test eax, eax
je 0x4fe8c0
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.0051ac30
add esp, 0x18
test eax, eax
je 0x4fe8ed
test ebx, ebx
je 0x4fe8ed
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.0051ac30
add esp, 0x18
test eax, eax
je 0x4fe91a
test ebx, ebx
je 0x4fe91a
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.0051c160
mov ecx, dword [ebp + 8]
add esp, 8
cmp dword [esi], 0
mov ebx, eax
mov edi, dword [ecx + 0x1c]
jne 0x4feba8
push 8
push esi
call fcn.005118c0
mov esi, dword [ebp + 8]
add esp, 8
test eax, eax
je 0x4fe953
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.0x4fe51e.4
cmp dword [edi + 0x84], 0
jne 0x4fe997
cmp dword [edi + 0x88], 0
je 0x4fe98e
push 0x22
push esi
call fcn.0051c160
push eax
push dword [esp + 0x70]
push esi
call fcn.004fc000
add esp, 0x14
mov esi, edi
jmp case.0x4fe51e.4
mov edi, dword [ebp + 8]
cmp dword [edi + 0x84], 0
je 0x4fea02
mov edi, dword [edi + 0xc0]
push 0x22
push esi
call fcn.0051c160
add esp, 8
test edi, edi
jne 0x4fe9e3
cmp dword [esi], 0
mov edi, eax
jne 0x4fe657
push 8
push esi
call fcn.005118c0
mov esi, dword [ebp + 8]
add esp, 8
test eax, eax
je case.0x4fe51e.4
mov ecx, dword [esi + 0xe0]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [esi + 0xe0], eax
jmp case.0x4fe51e.4
mov esi, dword [ebp + 8]
test eax, eax
je case.0x4fe51e.4
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edi
or ecx, 1
mov dword [eax + 8], ecx
jmp case.0x4fe51e.4
mov eax, 0x9d
cmp cx, ax
jne 0x4fea71
push dword [edi + 0x44]
push 0x8d
push 0
push 1
push 0x20
push esi
call fcn.0051c420
mov eax, dword [ebx + 0x10]
add eax, 4
push eax
push 0x40
push 0
push 2
push 0x20
push esi
call fcn.0051c420
push 0x50eee0
push 0x40
push 0x111
push 0x24
push esi
call fcn.0051baa0
add esp, 0x44
push 0
push 1
push 0
push 2
push 0x20
push esi
call fcn.0051c420
push 0
push 0x40
push 0
push 1
push 1
push esi
call fcn.0051ac30
add esp, 0x30
jmp 0x4feaa0
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.0051c420
push 0x22
push esi
call fcn.0051c160
add esp, 0x20
cmp dword [esi], 0
mov edi, eax
jne 0x4fe657
push 8
push esi
call fcn.005118c0
mov esi, dword [ebp + 8]
add esp, 8
test eax, eax
je case.0x4fe51e.4
mov ecx, dword [esi + 0x118]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [esi + 0x118], eax
jmp case.0x4fe51e.4
cmp dword [esi + 0x84], 0
jne 0x4feaf3
push 0xffffffffffffffff
push 0x40
push 0
push 1
push 0x20
push edi
call fcn.0051c420
add esp, 0x18
mov esi, dword [esi + 0xc0]
push 0x22
push edi
call fcn.0051c160
add esp, 8
test esi, esi
jne 0x4feb42
cmp dword [edi], 0
mov esi, eax
jne 0x4fe657
push 8
push edi
call fcn.005118c0
add esp, 8
test eax, eax
je 0x4fe657
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.0x4fe51e.4
test eax, eax
je 0x4fe657
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
jmp 0x4fe657
push edi
call fcn.0051c1f0
mov edx, dword [ebx + 0xc]
add esp, 4
mov esi, eax
test edx, edx
je 0x4fe657
mov ecx, dword [edx]
test ecx, ecx
je 0x4feb8d
test esi, esi
je 0x4feb8d
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 0x4feb74
jmp 0x4fe657
push ebx
push esi
call fcn.0050a590
add esp, 8
jmp case.0x4fe51e.4
mov ebx, dword [esp + 0x24]
mov esi, ecx
jmp case.0x4fe51e.4
mov dword [esi], 0
mov eax, dword [edi + 0x4c]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x4febca
mov dword [eax], esi
jmp 0x4febcd
mov dword [edi + 8], esi
push 2
push edi
mov dword [edi + 0x18], esi
call fcn.00511920
add esp, 8
test eax, eax
jne 0x4febe3
xor esi, esi
jmp 0x4febe8
mov word [eax], 0
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x4fec10
mov ecx, dword [edx]
test ecx, ecx
je 0x4fec09
test esi, esi
je 0x4fec09
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 0x4febf0
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ebp + 8]
cmp word [ecx], 0x78
jne 0x4fec2f
movzx eax, word [ecx + 2]
mov esi, ecx
lea ecx, [ecx + eax*2]
mov dword [esp + 0x2c], ecx
jmp 0x4fe040
cmp dword [esp + 0x30], 0
je 0x4fec42
mov eax, dword [ebx + 0xe0]
mov dword [ebx + 0xe4], eax
cmp dword [ebx + 0xe4], 0
je 0x4fed26
push 0x22
push edi
call fcn.0051c160
push dword [esp + 0x14]
mov edi, eax
call fcn.0051c1f0
mov edx, dword [ebx + 0xe4]
add esp, 0xc
mov esi, eax
test edx, edx
je 0x4fec91
mov ecx, dword [edx]
test ecx, ecx
je 0x4fec8a
test esi, esi
je 0x4fec8a
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 0x4fec71
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0x10]
lea esi, [eax*4]
jge 0x4fecae
mov ecx, dword [esp + 0x14]
mov eax, 0x8d
jmp 0x4fecef
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push dword [esp + 0x20]
call fcn.0051c420
push 0x23
push dword [esp + 0x28]
call fcn.0051c160
push eax
lea eax, [ebx + 0xfc]
push eax
push dword [esp + 0x34]
call fcn.004fc000
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.0051c660
push esi
call fcn.0051c1f0
add esp, 0x24
test edi, edi
je 0x4fed24
test eax, eax
je 0x4fed24
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 0x4fed47
push 4
push 0x8b
push dword [ebx + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0051c420
add esp, 0x18
mov eax, dword [esp + 0x28]
cmp ax, 0x7e
je 0x4fef23
mov ecx, 0x80
cmp ax, cx
je 0x4fef23
cmp dword [esp + 0x18], 0
jge 0x4fedd4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4fed8c
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c420
mov eax, dword [esp + 0x28]
add esp, 0x18
mov esi, 0x86
cmp word [esp + 0x1c], si
je 0x4fedbd
cmp eax, 2
jne 0x4feda8
push 1
push ebx
call fcn.005147f0
add esp, 8
mov ecx, 0x8b
mov dword [esp + 0x14], 0
lea edx, [ecx - 0x4b]
jmp 0x4fee4d
test eax, eax
je 0x4ff395
push eax
push ebx
call fcn.005147f0
add esp, 8
jmp 0x4ff395
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c420
mov esi, dword [esp + 0x28]
lea eax, [esi*4 - 4]
push eax
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c420
mov eax, dword [esp + 0x48]
add esp, 0x30
add eax, esi
mov esi, 0x86
cmp word [esp + 0x1c], si
je 0x4fee39
dec eax
push eax
push ebx
call fcn.005147f0
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0051c420
add esp, 0x20
jmp 0x4fee43
push eax
push ebx
call fcn.005147f0
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.0051c420
mov eax, dword [esp + 0x34]
mov ecx, 0x96
add esp, 0x18
cmp ax, cx
jne 0x4fee81
push edi
call fcn.0051c1f0
mov esi, dword [ebp + 0x10]
add esp, 4
mov dword [esi + 0x20], eax
jmp 0x4feee2
mov ecx, 0x97
cmp ax, cx
jne 0x4feed9
mov esi, dword [ebp + 0x10]
push 0x22
push edi
mov esi, dword [esi + 0x20]
call fcn.0051c160
add esp, 8
test eax, eax
je 0x4feeb3
test esi, esi
je 0x4feeb3
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.0051c1f0
mov edx, dword [esp + 0x38]
add esp, 4
test edx, edx
je 0x4feee2
test eax, eax
je 0x4feee2
mov ecx, dword [edx + 8]
and ecx, 0xfffffffd
mov dword [edx + 0xc], eax
or ecx, 1
mov dword [edx + 8], ecx
jmp 0x4feee2
cmp ax, si
je 0x4ff395
push edi
call fcn.0051c1f0
mov edi, dword [ebp + 0x10]
add esp, 4
mov esi, eax
mov edx, dword [edi + 0xc]
test edx, edx
je 0x4fef17
mov ecx, dword [edx]
test ecx, ecx
je 0x4fef10
test esi, esi
je 0x4fef10
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 0x4feef7
mov dword [edi + 0xc], 0
jmp 0x4ff395
cmp dword [ebp + 0x14], 0
mov esi, dword [esp + 0x10]
je 0x4fef31
test esi, esi
jne 0x4fef3f
mov eax, dword [esp + 0x1c]
mov ecx, 0x96
cmp ax, cx
jne 0x4fef5e
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0051c420
mov eax, dword [esp + 0x34]
add esp, 0x18
mov ecx, 0x96
cmp dword [esp + 0x18], 0
jge 0x4fefc0
cmp ax, cx
jne 0x4fef9f
cmp esi, 2
jne 0x4fef7a
push 1
push ebx
call fcn.005147f0
add esp, 8
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0051c420
push 0x22
push edi
call fcn.0051c160
add esp, 0x20
mov edi, eax
jmp 0x4ff05a
test esi, esi
je 0x4ff030
push esi
push ebx
call fcn.005147f0
push 0x22
push edi
call fcn.0051c160
add esp, 0x10
mov edi, eax
jmp 0x4ff049
lea eax, [esi*4 - 4]
push eax
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c420
mov eax, dword [esp + 0x30]
mov ecx, 0x96
add esp, 0x18
add eax, esi
cmp word [esp + 0x1c], cx
jne 0x4ff00e
dec eax
push eax
push ebx
call fcn.005147f0
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0051c420
add esp, 0x20
jmp 0x4ff018
push eax
push ebx
call fcn.005147f0
add esp, 8
push 0
push 1
push dword [esp + 0x1c]
push 0x8d
push 0x20
push edi
call fcn.0051c420
add esp, 0x18
push 0x22
push edi
call fcn.0051c160
mov edi, eax
add esp, 8
mov eax, 0x96
cmp word [esp + 0x1c], ax
je 0x4ff05a
push edi
push dword [esp + 0x4c]
push dword [esp + 0x14]
call fcn.004fc000
add esp, 0xc
push dword [esp + 0xc]
call fcn.0051c1f0
mov edx, dword [esp + 0x50]
add esp, 4
mov esi, eax
test edx, edx
je 0x4ff090
mov ecx, dword [edx]
test ecx, ecx
je 0x4ff089
test esi, esi
je 0x4ff089
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 0x4ff070
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
test eax, eax
jns 0x4ff14a
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4ff0c2
neg eax
shl eax, 2
push eax
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0051c420
add esp, 0x18
mov eax, dword [esp + 0x1c]
mov ecx, 0x96
cmp ax, cx
jne 0x4ff10d
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0051c660
add esp, 0x20
cmp dword [esp + 0x10], 2
jne 0x4ff257
push 0
push 2
push 0
push 0x8b
push 0x20
push esi
call fcn.0051c420
add esp, 0x18
jmp 0x4ff257
mov ecx, 0x97
cmp ax, cx
jne 0x4ff395
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0051c660
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0051c420
add esp, 0x38
jmp 0x4ff295
mov ecx, 0x86
cmp word [esp + 0x1c], cx
jne 0x4ff19d
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.0051c660
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.0051c420
add esp, 0x38
jmp 0x4ff395
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.0051c660
add esp, 0x20
cmp dword [esp + 0x10], 2
jne 0x4ff205
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0051c420
mov eax, dword [esp + 0x34]
mov edx, 0x97
add esp, 0x18
cmp ax, dx
jne 0x4ff24d
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0051c420
add esp, 0x18
jmp 0x4ff295
push 0xfffffffffffffffc
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0051c420
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.0051c420
mov eax, dword [esp + 0x4c]
add esp, 0x30
mov edx, 0x97
mov ecx, 0x96
cmp ax, cx
jne 0x4ff28c
push esi
call fcn.0051c1f0
mov esi, dword [ebp + 0x10]
add esp, 4
mov ecx, eax
mov dword [esi + 0x20], ecx
test edi, edi
je 0x4ff395
test ecx, ecx
je 0x4ff395
mov eax, dword [edi + 8]
and eax, 0xfffffffd
mov dword [edi + 0xc], ecx
or eax, 1
mov dword [edi + 8], eax
jmp 0x4ff395
cmp ax, dx
jne 0x4ff395
mov esi, dword [ebp + 0x10]
mov edi, dword [esp + 0xc]
push 0x22
push edi
mov esi, dword [esi + 0x20]
call fcn.0051c160
add esp, 8
test eax, eax
je 0x4ff2c1
test esi, esi
je 0x4ff2c1
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.0051c1f0
mov edx, dword [esp + 0x38]
add esp, 4
test edx, edx
je 0x4ff2e5
test eax, eax
je 0x4ff2e5
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 0x4ff360
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push edi
call fcn.0051c420
push 0x23
push edi
call fcn.0051c160
push eax
lea eax, [ebx + 0xfc]
push eax
push edi
call fcn.004fc000
push 0xfffffffffffffff8
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0051c420
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.0051c660
push 0
push 1
push dword [esp + 0x3c]
push 0x8d
push 0x20
push edi
call fcn.0051c420
add esp, 0x38
push edi
call fcn.0051c1f0
mov esi, eax
add esp, 4
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x4ff395
mov ecx, dword [edx]
test ecx, ecx
je 0x4ff38e
test esi, esi
je 0x4ff38e
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 0x4ff375
cmp dword [esp + 0x30], 0
je 0x4ff3ba
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 0x4ff41c
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