Function at 0x52ca50
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 0x52cb04
cmp ax, dx
jne 0x52cb0b
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.005437b0
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 0x52cb5c
cmp ax, dx
mov eax, dword [esp + 0x48]
jne 0x52cb60
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 0x52cbc4
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0054b290
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [ebx]
call fcn.0054b4d0
push 0
push 0x40
push 0
push 2
push 0
push edi
call fcn.00549aa0
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 0x52ccf0
mov eax, 1
mov dword [esp + 0x10], eax
cmp dx, word [esp + 0x24]
jne 0x52cc35
movzx eax, word [esi + 4]
lea ecx, [esi + 4]
sub eax, 4
cmp eax, 0x75
ja case.0x52cc07.6
nop dword [eax]
nop word [eax + eax]
movzx eax, byte [eax + 0x52e2c4]
jmp dword [eax*4 + 0x52e2b4]
movzx eax, word [ecx + 6]
jmp 0x52cc1e
movzx eax, word [ecx]
movzx eax, byte [eax + 0x6f4250]
lea ecx, [ecx + eax*2]
movzx eax, word [ecx]
sub eax, 4
cmp eax, 0x75
jbe 0x52cc00
mov eax, 1
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x20], 0
je 0x52cc41
inc eax
mov dword [esp + 0x10], eax
cmp ecx, 0xffffffff
jne 0x52cc5e
push 0
push 0xb
push dword [esp + 0x1c]
push 0x8d
push 0x20
push edi
call fcn.0054b290
add esp, 0x18
mov eax, dword [esp + 0x10]
test eax, eax
je 0x52cc70
push eax
push ebx
call fcn.0052ae90
add esp, 8
cmp dword [esp + 0x20], 0
je 0x52cc8e
push dword [ebx + 0x44]
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.0054b290
add esp, 0x18
cmp dword [esp + 0x10], 0
jbe 0x52ccab
push 0
push 2
push 0
push 0x8b
push 0x20
push edi
call fcn.0054b290
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x52ce11
push 0
push 0x40
push dword [ebx + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0054b290
push 0
push 1
push 4
push 0x8b
push 0x20
push edi
call fcn.0054b290
add esp, 0x30
jmp 0x52ce11
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x52cc31
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.0052ae90
push dword [esp + 0x1c]
push 0x8d
push 0
push 1
push 0x20
push dword [esp + 0x28]
call fcn.0054b290
lea eax, [edi*4]
push eax
push 0x40
push 0
push 0xb
push 0
push 3
push 0x60
push dword [esp + 0x48]
call fcn.0054b4d0
add esp, 0x40
push 0
push 3
push dword [esp + 0x1c]
push 0x8d
push 0x20
push dword [esp + 0x20]
call fcn.0054b290
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x52cd7e
push dword [ebx + 0x44]
push 0x8d
push 0
push 3
push 0x20
push dword [esp + 0x20]
call fcn.0054b290
add esp, 0x18
push 0
push 2
push 0
push 0x8b
push 0x20
push dword [esp + 0x20]
call fcn.0054b290
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x52cdda
push 0
push 1
push 8
push 0x8b
push 0x20
push dword [esp + 0x20]
call fcn.0054b290
push 0
push 3
push 4
push 0x8b
push 0x20
push dword [esp + 0x38]
call fcn.0054b290
mov ecx, dword [ebx + 0x44]
mov eax, 0x8d
add esp, 0x30
lea edx, [eax - 0x4d]
jmp 0x52cde9
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.0054b290
push dword [esp + 0x28]
lea eax, [edi - 1]
push eax
push 0
push esi
push ebx
call fcn.005444d0
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 0x52ce3f
cmp ax, 0x7f
je 0x52ce3f
cmp ax, cx
jne 0x52ce65
mov dword [esp + 0x30], 1
mov dword [ebx + 0x84], 1
mov dword [ebx + 0xc0], 0
mov dword [ebx + 0xe0], 0
cmp ax, 0x7e
je 0x52ce79
mov ecx, 0x80
cmp ax, cx
je 0x52ce79
xor eax, eax
jmp 0x52ce7e
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 0x52ceeb
cmp dword [esp + 0x10], 0
jbe 0x52ceeb
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0054b290
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.005359f0
add esp, 0x10
cmp dword [edi], 0
jne 0x52e257
mov esi, dword [edi + 0x18]
test esi, esi
je 0x52cf20
mov eax, dword [esi + 8]
cmp eax, dword [edi + 0x4c]
je 0x52cf66
push 0xc
push edi
call fcn.00540720
mov esi, eax
add esp, 8
test esi, esi
je 0x52cf66
mov dword [esi], 0
mov eax, dword [edi + 0x4c]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x52cf48
mov dword [eax], esi
jmp 0x52cf4b
mov dword [edi + 8], esi
push 2
push edi
mov dword [edi + 0x18], esi
call fcn.00540780
add esp, 8
test eax, eax
jne 0x52cf61
xor esi, esi
jmp 0x52cf66
mov word [eax], 0
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0xf0]
mov dword [ebx + 0xc8], esi
test edx, edx
je 0x52cfa0
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x52cf99
test esi, esi
je 0x52cf99
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 0x52cf80
mov esi, dword [esp + 0x18]
test esi, esi
jns 0x52d066
cmp esi, 0xffffffff
jne 0x52cfdb
cmp dword [edi], 0
jne 0x52cffd
mov eax, dword [esp + 0x14]
add eax, 0x20
push eax
push 0x8d
push 0
push 0xb
push 1
push edi
call fcn.00540380
add esp, 0x18
test eax, eax
je 0x52cffd
mov byte [eax], 0x8b
jmp 0x52cffd
mov eax, dword [esp + 0x10]
test eax, eax
je 0x52cffd
shl eax, 2
push eax
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [ebx]
call fcn.0054b4d0
add esp, 0x20
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x52d16c
cmp dword [edi], 0
jne 0x52d16c
mov esi, dword [ebx + 0x44]
push 0xfffffffffffffffc
push 0x8b
push 0
push 0xe
push 1
push edi
add esi, 0x20
call fcn.00540380
add esp, 0x18
test eax, eax
je 0x52d164
push esi
push 0x8d
push 0
push 0xe
push 1
push edi
mov byte [eax], 0x8b
call fcn.00540380
mov esi, dword [esp + 0x30]
add esp, 0x18
mov ecx, dword [esp + 0x20]
test eax, eax
je 0x52d16c
mov byte [eax], 0x89
jmp 0x52d16c
mov eax, dword [esp + 0x28]
cmp ax, 0x7f
je 0x52d07a
mov ecx, 0x81
cmp ax, cx
jne 0x52d080
cmp dword [ebp + 0x14], 0
je 0x52d0cd
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.0054b4d0
mov ecx, dword [esp + 0x40]
add esp, 0x20
test ecx, ecx
je 0x52d16c
push 0xfffffffffffffffc
push 0x8b
push dword [ebx + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0054b290
add esp, 0x18
jmp 0x52d168
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push edi
call fcn.0054b290
add esp, 0x18
cmp dword [esp + 0x20], 0
je 0x52d10f
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.0054b290
add esp, 0x18
push 0x23
push edi
call fcn.0054afd0
add esp, 8
mov esi, eax
cmp dword [edi], 0
jne 0x52d141
push 8
push edi
call fcn.00540720
add esp, 8
test eax, eax
je 0x52d141
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.0054b4d0
add esp, 0x20
jmp 0x52d168
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp ax, 0x7f
je 0x52d184
mov edx, 0x81
cmp ax, dx
jne 0x52d283
cmp dword [ebp + 0x14], 0
je 0x52d1b2
cmp dword [esp + 0x10], 0
jbe 0x52d283
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*4 - 8]
push eax
push 0x8b
push 0
push 2
jmp 0x52d278
mov eax, 0x96
cmp word [esp + 0x1c], ax
jne 0x52d25d
test esi, esi
jns 0x52d1db
lea esi, [eax - 0xb]
xor edx, edx
mov eax, dword [esp + 0x10]
mov ecx, 2
neg eax
shl eax, 2
jmp 0x52d225
or eax, 0xffffffff
sub eax, esi
shl eax, 2
push eax
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0054b290
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.0054b290
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.0054b290
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push edi
call fcn.0054b4d0
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0054b290
add esp, 0x50
jmp 0x52d283
test esi, esi
js 0x52d283
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.0054b290
add esp, 0x18
push 0x22
push edi
call fcn.0054afd0
add esp, 8
mov esi, eax
cmp dword [edi], 0
jne 0x52d2b1
push 8
push edi
call fcn.00540720
add esp, 8
test eax, eax
je 0x52d2b1
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 0x52d4d0
cmp dword [ebx + 4], 0
je 0x52d363
cmp dword [edi], 0
je 0x52d2e4
xor esi, esi
jmp 0x52d339
mov esi, dword [edi + 0x18]
test esi, esi
je 0x52d2f3
mov eax, dword [esi + 8]
cmp eax, dword [edi + 0x4c]
je 0x52d339
push 0xc
push edi
call fcn.00540720
mov esi, eax
add esp, 8
test esi, esi
je 0x52d339
mov dword [esi], 0
mov eax, dword [edi + 0x4c]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x52d31b
mov dword [eax], esi
jmp 0x52d31e
mov dword [edi + 8], esi
push 2
push edi
mov dword [edi + 0x18], esi
call fcn.00540780
add esp, 8
test eax, eax
jne 0x52d334
xor esi, esi
jmp 0x52d339
mov word [eax], 0
mov edx, dword [ebx + 4]
test edx, edx
je 0x52d360
mov ecx, dword [edx]
test ecx, ecx
je 0x52d359
test esi, esi
je 0x52d359
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 0x52d340
mov esi, dword [ebp + 8]
mov ecx, dword [ebx + 0x10]
movzx edx, word [ecx]
lea eax, [edx - 3]
cmp eax, 0xa5
ja case.0x52d37e.4
movzx eax, byte [eax + 0x52e378]
jmp dword [eax*4 + 0x52e33c]
push 0
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0054b290
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x60
push dword [esi]
call fcn.0054b4d0
push 0
push 1
push dword [esi + 0x24]
push 0x8d
push 0x20
push edi
call fcn.0054b290
add esp, 0x50
jmp case.0x52d37e.4
push ebx
push esi
call fcn.00533f90
add esp, 8
jmp case.0x52d37e.4
push ebx
push esi
call fcn.00537450
add esp, 8
jmp case.0x52d37e.4
mov eax, dword [esp + 0x24]
mov ebx, dword [esi]
cmp dword [eax + 0x1c], 0
jne 0x52d475
mov esi, dword [eax + 0x18]
push 0x23
push ebx
mov edi, dword [esi + 8]
call fcn.0054afd0
add esp, 8
test edi, edi
jne 0x52d42f
cmp dword [ebx], 0
mov edi, eax
jne 0x52d442
push 8
push ebx
call fcn.00540720
add esp, 8
test eax, eax
je 0x52d442
mov ecx, dword [esi + 0x10]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [esi + 0x10], eax
jmp 0x52d442
test eax, eax
je 0x52d442
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.00549aa0
add esp, 0x18
test eax, eax
je 0x52d481
test esi, esi
je 0x52d481
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
jmp 0x52d481
push dword [eax + 8]
push esi
call fcn.0052e420
add esp, 8
push ebx
call fcn.0054b060
mov ebx, dword [esp + 0x28]
add esp, 4
mov esi, eax
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x52d4b7
mov ecx, dword [edx]
test ecx, ecx
je 0x52d4b0
test esi, esi
je 0x52d4b0
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 0x52d497
mov esi, dword [ebp + 8]
mov ebx, dword [ebx]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x24], ebx
test ebx, ebx
jne 0x52d2d1
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0xc]
mov dword [esi + 0x1c], eax
cmp dword [edi], 0
jne 0x52e257
mov esi, dword [edi + 0x18]
test esi, esi
je 0x52d4f3
mov eax, dword [esi + 8]
cmp eax, dword [edi + 0x4c]
je 0x52da48
push 0xc
push edi
call fcn.00540720
mov esi, eax
add esp, 8
test esi, esi
jne 0x52da13
jmp 0x52da48
push ebx
push esi
call fcn.0052c730
add esp, 8
jmp case.0x52d37e.4
push ebx
push esi
call fcn.0052e940
add esp, 8
jmp case.0x52d37e.4
mov eax, 0x81
push ebx
push esi
cmp word [ecx + 2], ax
jbe 0x52d50f
call fcn.0052e940
add esp, 8
jmp case.0x52d37e.4
push ebx
push esi
call fcn.005312c0
add esp, 8
jmp case.0x52d37e.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 0x52d587
push ebx
push ecx
push esi
call fcn.0052ff00
push dword [ebx + 8]
push esi
call fcn.0052e940
add esp, 0x14
jmp case.0x52d37e.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.0052ca50
add esp, 0x10
jmp case.0x52d37e.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.0054b290
add esp, 0x18
cmp dword [esi + 0x78], 0
je 0x52d615
push 0
push 0x8b
push 0
push 3
push 0x20
push edi
call fcn.0054b290
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.0054b4d0
push 0
push 1
push dword [esi + 0x40]
push 0x8d
push 0x20
push edi
call fcn.0054b290
add esp, 0x38
cmp dword [esi + 0x78], 0
je case.0x52d37e.4
push 0
push 3
push dword [esi + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0054b290
add esp, 0x18
jmp case.0x52d37e.4
mov esi, dword [esi]
mov ecx, edx
mov eax, 0x9e
cmp cx, ax
je 0x52d693
mov eax, 0x9f
cmp cx, ax
jne 0x52d7eb
mov edi, dword [ebp + 8]
cmp dword [edi + 0x1c], 0
je 0x52d7bc
push dword [edi + 0x44]
push 0x8d
push 0
push 0xb
push 0x20
push esi
call fcn.0054b290
push 1
push 0x40
push 0
push 1
push 0x20
push esi
call fcn.0054b290
mov eax, dword [edi + 0x1c]
push dword [eax + 0x18]
push 0x40
push 0
push 3
push 0x20
push esi
call fcn.0054b290
add esp, 0x48
push 0x22
push esi
call fcn.0054afd0
push esi
mov edi, eax
call fcn.0054b060
push 0
push 0x8b
push 0
push 0xb
push 0x20
push esi
mov ebx, eax
call fcn.0054b290
push esi
call fcn.0054b060
add esp, 0x28
test edi, edi
je 0x52d720
test eax, eax
je 0x52d720
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.00549aa0
add esp, 0x18
test eax, eax
je 0x52d74d
test ebx, ebx
je 0x52d74d
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.00549aa0
add esp, 0x18
test eax, eax
je 0x52d77a
test ebx, ebx
je 0x52d77a
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.0054afd0
mov ecx, dword [ebp + 8]
add esp, 8
cmp dword [esi], 0
mov ebx, eax
mov edi, dword [ecx + 0x1c]
jne 0x52da08
push 8
push esi
call fcn.00540720
mov esi, dword [ebp + 8]
add esp, 8
test eax, eax
je 0x52d7b3
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.0x52d37e.4
cmp dword [edi + 0x84], 0
jne 0x52d7f7
cmp dword [edi + 0x88], 0
je 0x52d7ee
push 0x22
push esi
call fcn.0054afd0
push eax
push dword [esp + 0x70]
push esi
call fcn.0052ae60
add esp, 0x14
mov esi, edi
jmp case.0x52d37e.4
mov edi, dword [ebp + 8]
cmp dword [edi + 0x84], 0
je 0x52d862
mov edi, dword [edi + 0xc0]
push 0x22
push esi
call fcn.0054afd0
add esp, 8
test edi, edi
jne 0x52d843
cmp dword [esi], 0
mov edi, eax
jne 0x52d4b7
push 8
push esi
call fcn.00540720
mov esi, dword [ebp + 8]
add esp, 8
test eax, eax
je case.0x52d37e.4
mov ecx, dword [esi + 0xe0]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [esi + 0xe0], eax
jmp case.0x52d37e.4
mov esi, dword [ebp + 8]
test eax, eax
je case.0x52d37e.4
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edi
or ecx, 1
mov dword [eax + 8], ecx
jmp case.0x52d37e.4
mov eax, 0x9d
cmp cx, ax
jne 0x52d8d1
push dword [edi + 0x44]
push 0x8d
push 0
push 1
push 0x20
push esi
call fcn.0054b290
mov eax, dword [ebx + 0x10]
add eax, 4
push eax
push 0x40
push 0
push 2
push 0x20
push esi
call fcn.0054b290
push 0x53dd40
push 0x40
push 0x111
push 0x24
push esi
call fcn.0054a910
add esp, 0x44
push 0
push 1
push 0
push 2
push 0x20
push esi
call fcn.0054b290
push 0
push 0x40
push 0
push 1
push 1
push esi
call fcn.00549aa0
add esp, 0x30
jmp 0x52d900
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.0054b290
push 0x22
push esi
call fcn.0054afd0
add esp, 0x20
cmp dword [esi], 0
mov edi, eax
jne 0x52d4b7
push 8
push esi
call fcn.00540720
mov esi, dword [ebp + 8]
add esp, 8
test eax, eax
je case.0x52d37e.4
mov ecx, dword [esi + 0x118]
mov dword [eax + 4], ecx
mov dword [eax], edi
mov dword [esi + 0x118], eax
jmp case.0x52d37e.4
cmp dword [esi + 0x84], 0
jne 0x52d953
push 0xffffffffffffffff
push 0x40
push 0
push 1
push 0x20
push edi
call fcn.0054b290
add esp, 0x18
mov esi, dword [esi + 0xc0]
push 0x22
push edi
call fcn.0054afd0
add esp, 8
test esi, esi
jne 0x52d9a2
cmp dword [edi], 0
mov esi, eax
jne 0x52d4b7
push 8
push edi
call fcn.00540720
add esp, 8
test eax, eax
je 0x52d4b7
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.0x52d37e.4
test eax, eax
je 0x52d4b7
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
jmp 0x52d4b7
push edi
call fcn.0054b060
mov edx, dword [ebx + 0xc]
add esp, 4
mov esi, eax
test edx, edx
je 0x52d4b7
mov ecx, dword [edx]
test ecx, ecx
je 0x52d9ed
test esi, esi
je 0x52d9ed
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 0x52d9d4
jmp 0x52d4b7
push ebx
push esi
call fcn.005393f0
add esp, 8
jmp case.0x52d37e.4
mov ebx, dword [esp + 0x24]
mov esi, ecx
jmp case.0x52d37e.4
mov dword [esi], 0
mov eax, dword [edi + 0x4c]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x52da2a
mov dword [eax], esi
jmp 0x52da2d
mov dword [edi + 8], esi
push 2
push edi
mov dword [edi + 0x18], esi
call fcn.00540780
add esp, 8
test eax, eax
jne 0x52da43
xor esi, esi
jmp 0x52da48
mov word [eax], 0
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x52da70
mov ecx, dword [edx]
test ecx, ecx
je 0x52da69
test esi, esi
je 0x52da69
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 0x52da50
mov ecx, dword [esp + 0x2c]
mov ebx, dword [ebp + 8]
cmp word [ecx], 0x78
jne 0x52da8f
movzx eax, word [ecx + 2]
mov esi, ecx
lea ecx, [ecx + eax*2]
mov dword [esp + 0x2c], ecx
jmp 0x52cea0
cmp dword [esp + 0x30], 0
je 0x52daa2
mov eax, dword [ebx + 0xe0]
mov dword [ebx + 0xe4], eax
cmp dword [ebx + 0xe4], 0
je 0x52db86
push 0x22
push edi
call fcn.0054afd0
push dword [esp + 0x14]
mov edi, eax
call fcn.0054b060
mov edx, dword [ebx + 0xe4]
add esp, 0xc
mov esi, eax
test edx, edx
je 0x52daf1
mov ecx, dword [edx]
test ecx, ecx
je 0x52daea
test esi, esi
je 0x52daea
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 0x52dad1
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0x10]
lea esi, [eax*4]
jge 0x52db0e
mov ecx, dword [esp + 0x14]
mov eax, 0x8d
jmp 0x52db4f
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push dword [esp + 0x20]
call fcn.0054b290
push 0x23
push dword [esp + 0x28]
call fcn.0054afd0
push eax
lea eax, [ebx + 0xfc]
push eax
push dword [esp + 0x34]
call fcn.0052ae60
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.0054b4d0
push esi
call fcn.0054b060
add esp, 0x24
test edi, edi
je 0x52db84
test eax, eax
je 0x52db84
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 0x52dba7
push 4
push 0x8b
push dword [ebx + 0x44]
push 0x8d
push 0x20
push edi
call fcn.0054b290
add esp, 0x18
mov eax, dword [esp + 0x28]
cmp ax, 0x7e
je 0x52dd83
mov ecx, 0x80
cmp ax, cx
je 0x52dd83
cmp dword [esp + 0x18], 0
jge 0x52dc34
mov eax, dword [esp + 0x10]
test eax, eax
je 0x52dbec
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0054b290
mov eax, dword [esp + 0x28]
add esp, 0x18
mov esi, 0x86
cmp word [esp + 0x1c], si
je 0x52dc1d
cmp eax, 2
jne 0x52dc08
push 1
push ebx
call fcn.00543650
add esp, 8
mov ecx, 0x8b
mov dword [esp + 0x14], 0
lea edx, [ecx - 0x4b]
jmp 0x52dcad
test eax, eax
je 0x52e1f5
push eax
push ebx
call fcn.00543650
add esp, 8
jmp 0x52e1f5
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0054b290
mov esi, dword [esp + 0x28]
lea eax, [esi*4 - 4]
push eax
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0054b290
mov eax, dword [esp + 0x48]
add esp, 0x30
add eax, esi
mov esi, 0x86
cmp word [esp + 0x1c], si
je 0x52dc99
dec eax
push eax
push ebx
call fcn.00543650
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0054b290
add esp, 0x20
jmp 0x52dca3
push eax
push ebx
call fcn.00543650
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.0054b290
mov eax, dword [esp + 0x34]
mov ecx, 0x96
add esp, 0x18
cmp ax, cx
jne 0x52dce1
push edi
call fcn.0054b060
mov esi, dword [ebp + 0x10]
add esp, 4
mov dword [esi + 0x20], eax
jmp 0x52dd42
mov ecx, 0x97
cmp ax, cx
jne 0x52dd39
mov esi, dword [ebp + 0x10]
push 0x22
push edi
mov esi, dword [esi + 0x20]
call fcn.0054afd0
add esp, 8
test eax, eax
je 0x52dd13
test esi, esi
je 0x52dd13
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.0054b060
mov edx, dword [esp + 0x38]
add esp, 4
test edx, edx
je 0x52dd42
test eax, eax
je 0x52dd42
mov ecx, dword [edx + 8]
and ecx, 0xfffffffd
mov dword [edx + 0xc], eax
or ecx, 1
mov dword [edx + 8], ecx
jmp 0x52dd42
cmp ax, si
je 0x52e1f5
push edi
call fcn.0054b060
mov edi, dword [ebp + 0x10]
add esp, 4
mov esi, eax
mov edx, dword [edi + 0xc]
test edx, edx
je 0x52dd77
mov ecx, dword [edx]
test ecx, ecx
je 0x52dd70
test esi, esi
je 0x52dd70
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 0x52dd57
mov dword [edi + 0xc], 0
jmp 0x52e1f5
cmp dword [ebp + 0x14], 0
mov esi, dword [esp + 0x10]
je 0x52dd91
test esi, esi
jne 0x52dd9f
mov eax, dword [esp + 0x1c]
mov ecx, 0x96
cmp ax, cx
jne 0x52ddbe
push 0
push 0x8b
push 0
push 2
push 0x20
push edi
call fcn.0054b290
mov eax, dword [esp + 0x34]
add esp, 0x18
mov ecx, 0x96
cmp dword [esp + 0x18], 0
jge 0x52de20
cmp ax, cx
jne 0x52ddff
cmp esi, 2
jne 0x52ddda
push 1
push ebx
call fcn.00543650
add esp, 8
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0054b290
push 0x22
push edi
call fcn.0054afd0
add esp, 0x20
mov edi, eax
jmp 0x52deba
test esi, esi
je 0x52de90
push esi
push ebx
call fcn.00543650
push 0x22
push edi
call fcn.0054afd0
add esp, 0x10
mov edi, eax
jmp 0x52dea9
lea eax, [esi*4 - 4]
push eax
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0054b290
mov eax, dword [esp + 0x30]
mov ecx, 0x96
add esp, 0x18
add eax, esi
cmp word [esp + 0x1c], cx
jne 0x52de6e
dec eax
push eax
push ebx
call fcn.00543650
push 0
push 0x40
push 0
push 0x8b
push 0x20
push edi
call fcn.0054b290
add esp, 0x20
jmp 0x52de78
push eax
push ebx
call fcn.00543650
add esp, 8
push 0
push 1
push dword [esp + 0x1c]
push 0x8d
push 0x20
push edi
call fcn.0054b290
add esp, 0x18
push 0x22
push edi
call fcn.0054afd0
mov edi, eax
add esp, 8
mov eax, 0x96
cmp word [esp + 0x1c], ax
je 0x52deba
push edi
push dword [esp + 0x4c]
push dword [esp + 0x14]
call fcn.0052ae60
add esp, 0xc
push dword [esp + 0xc]
call fcn.0054b060
mov edx, dword [esp + 0x50]
add esp, 4
mov esi, eax
test edx, edx
je 0x52def0
mov ecx, dword [edx]
test ecx, ecx
je 0x52dee9
test esi, esi
je 0x52dee9
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 0x52ded0
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
test eax, eax
jns 0x52dfaa
mov eax, dword [esp + 0x10]
test eax, eax
je 0x52df22
neg eax
shl eax, 2
push eax
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
mov eax, dword [esp + 0x1c]
mov ecx, 0x96
cmp ax, cx
jne 0x52df6d
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0054b4d0
add esp, 0x20
cmp dword [esp + 0x10], 2
jne 0x52e0b7
push 0
push 2
push 0
push 0x8b
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
jmp 0x52e0b7
mov ecx, 0x97
cmp ax, cx
jne 0x52e1f5
push 4
push 0x40
push 0
push 0xb
push 0
push 0xb
push 0x62
push esi
call fcn.0054b4d0
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0054b290
add esp, 0x38
jmp 0x52e0f5
mov ecx, 0x86
cmp word [esp + 0x1c], cx
jne 0x52dffd
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.0054b4d0
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.0054b290
add esp, 0x38
jmp 0x52e1f5
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.0054b4d0
add esp, 0x20
cmp dword [esp + 0x10], 2
jne 0x52e065
push 0
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0054b290
mov eax, dword [esp + 0x34]
mov edx, 0x97
add esp, 0x18
cmp ax, dx
jne 0x52e0ad
push 0
push 0x40
push 0
push 0x8b
push 0x20
push esi
call fcn.0054b290
add esp, 0x18
jmp 0x52e0f5
push 0xfffffffffffffffc
push 0x8b
push 0
push 2
push 0x20
push esi
call fcn.0054b290
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.0054b290
mov eax, dword [esp + 0x4c]
add esp, 0x30
mov edx, 0x97
mov ecx, 0x96
cmp ax, cx
jne 0x52e0ec
push esi
call fcn.0054b060
mov esi, dword [ebp + 0x10]
add esp, 4
mov ecx, eax
mov dword [esi + 0x20], ecx
test edi, edi
je 0x52e1f5
test ecx, ecx
je 0x52e1f5
mov eax, dword [edi + 8]
and eax, 0xfffffffd
mov dword [edi + 0xc], ecx
or eax, 1
mov dword [edi + 8], eax
jmp 0x52e1f5
cmp ax, dx
jne 0x52e1f5
mov esi, dword [ebp + 0x10]
mov edi, dword [esp + 0xc]
push 0x22
push edi
mov esi, dword [esi + 0x20]
call fcn.0054afd0
add esp, 8
test eax, eax
je 0x52e121
test esi, esi
je 0x52e121
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.0054b060
mov edx, dword [esp + 0x38]
add esp, 4
test edx, edx
je 0x52e145
test eax, eax
je 0x52e145
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 0x52e1c0
push dword [esp + 0x14]
push 0x8d
push 0
push 0xb
push 0x20
push edi
call fcn.0054b290
push 0x23
push edi
call fcn.0054afd0
push eax
lea eax, [ebx + 0xfc]
push eax
push edi
call fcn.0052ae60
push 0xfffffffffffffff8
push 0x8b
push 0
push 1
push 0x20
push edi
call fcn.0054b290
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.0054b4d0
push 0
push 1
push dword [esp + 0x3c]
push 0x8d
push 0x20
push edi
call fcn.0054b290
add esp, 0x38
push edi
call fcn.0054b060
mov esi, eax
add esp, 4
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x52e1f5
mov ecx, dword [edx]
test ecx, ecx
je 0x52e1ee
test esi, esi
je 0x52e1ee
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 0x52e1d5
cmp dword [esp + 0x30], 0
je 0x52e21a
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 0x52e27c
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