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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d3c78
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x646c
call fcn.004c1320
mov eax, dword [0x4eb0b4]
xor eax, esp
mov dword [esp + 0x6468], eax
push ebx
push esi
push edi
mov eax, dword [0x4eb0b4]
xor eax, esp
push eax
lea eax, [esp + 0x6480]
mov dword fs:[0], eax
xor esi, esi
push 0x40
lea ecx, [esp + 0x50]
mov dword [esp + 0x3c], 0xffffffff
mov dword [esp + 0x44], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
call fcn.00437130
mov dword [esp + 0x6488], esi
lea ecx, [esp + 0x10c]
call fcn.0047fbd0
mov byte [esp + 0x6488], 1
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov byte [esp + 0x6488], 2
lea ecx, [esp + 0xac]
call fcn.0047fbd0
mov byte [esp + 0x6488], 3
mov eax, dword [esp + 0x4c]
mov dword [0x521788], eax
mov dword [0x520548], 1
nop
cmp byte [0x534c20], 0
jne 0x438a25
mov esi, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], eax
lea edi, [eax + 1]
mov edi, edi
mov ebx, dword [esp + 0x34]
cmp ebx, 0x40
jl 0x437b96
cmp byte [0x532964], 0
je 0x437fda
mov eax, dword [esp + 0x50]
cmp ebx, eax
jl 0x437bb8
cmp edi, dword [esp + 0x54]
jbe 0x437bb4
mov ecx, edi
sub ecx, eax
push ecx
lea ecx, [esp + 0x50]
call fcn.00437130
jmp 0x437bb8
mov dword [esp + 0x50], edi
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
push 4
add eax, edx
push 0x52057c
mov dword [0x521788], eax
call fcn.00440430
test eax, eax
je 0x437ec1
push 4
push 0x5317f5
push 0x52057c
call fcn.004c356e
add esp, 0xc
test eax, eax
jne 0x437ed6
call fcn.00463bd0
test eax, eax
jne 0x437fa1
movzx edx, byte [0x531829]
movzx eax, word [0x531848]
push edx
push 0x53182c
push 2
xor ecx, ecx
push eax
mov word [0x5318cc], cx
call fcn.00440820
test eax, eax
je 0x437c3c
cmp eax, esi
jle 0x437c33
mov esi, eax
cmp eax, 1
jg 0x437faf
movzx ecx, word [0x53184a]
push 0
push 0
push 3
push ecx
call fcn.00440820
test eax, eax
je 0x437c62
cmp eax, esi
jle 0x437c59
mov esi, eax
cmp eax, 1
jg 0x437faf
movzx edx, word [0x53184a]
mov eax, dword [0x5317e8]
push 0
push edx
push eax
call fcn.00463320
movzx ecx, word [0x53184a]
mov edx, dword [0x5317e8]
push 0x53182e
push ecx
push edx
call fcn.00486150
movzx eax, word [0x53184c]
push 0
push 0
push 0
push eax
call fcn.00440820
test eax, eax
je 0x437cb6
cmp eax, esi
jle 0x437cad
mov esi, eax
cmp eax, 1
jg 0x437faf
movzx eax, word [0x53184a]
mov edx, dword [0x5328cc]
push 0x3000
lea ecx, [esp + 0x3478]
push ecx
push edx
push eax
mov eax, dword [0x5317e8]
call fcn.00437020
test al, al
je 0x437d08
push 0x800
push 0x5318cc
lea ecx, [esp + 0x347c]
push ecx
call fcn.00486e20
push 0x800
push 0
push 0x5318cc
call fcn.00460410
movzx eax, word [0x531830]
movzx ecx, word [0x531832]
lea edx, [esp + 0xa4]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
mov edx, dword [0x521788]
add edx, 0x28
push edx
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
mov ecx, dword [0x521788]
xor eax, eax
mov dword [ecx + 0x30], eax
add ecx, 0x30
mov dword [ecx + 4], eax
mov ecx, dword [0x521788]
add ecx, 0x38
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [0x521788]
lea ecx, [eax + 0x38]
push ecx
mov ecx, dword [0x5317e8]
lea edx, [eax + 0x30]
add eax, 0x28
push edx
push eax
movzx eax, word [0x53184a]
call fcn.00436f30
movzx eax, word [0x53184a]
mov ecx, dword [0x5317e8]
call fcn.004370d0
mov bl, al
test bl, bl
je 0x437db5
push 0x5318cc
push 0x605
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
add esp, 0xc
lea ecx, [esp + 0x16c]
call fcn.004022f0
mov byte [esp + 0x6488], 4
push 0x2300
lea eax, [esp + 0x170]
push 0
push eax
call fcn.004c1d50
add esp, 0xc
push 0x800
push 0x5318cc
lea ecx, [esp + 0x194]
push ecx
call fcn.0047f480
mov edx, dword [0x521788]
add edx, 0x28
push edx
lea ecx, [esp + 0x11a0]
call fcn.004826e0
cmp dword [0x533b6c], 1
mov eax, dword [0x531840]
mov ecx, dword [0x531844]
mov dword [esp + 0x11bc], eax
mov dword [esp + 0x11c0], ecx
mov eax, 5
je 0x437e4b
cmp dword [0x54b1dc], 0
jne 0x437e4b
cmp byte [0x54f42c], 0
jne 0x437e4b
mov eax, VariantClear
test bl, bl
jne 0x437e92
push eax
push 0
lea edx, [esp + 0x174]
push edx
mov ecx, 0x545058
call fcn.00421650
test eax, eax
je 0x437e92
call fcn.00436c00
test eax, eax
je 0x437e8e
push 0x5318cc
lea ecx, [esp + 0x110]
call fcn.0047fa40
inc dword [esp + 0x34]
inc edi
add dword [esp + 0x18], 0x48
jmp 0x437e92
inc dword [esp + 0x2c]
add dword [esp + 0x24], 1
adc dword [esp + 0x28], 0
mov byte [esp + 0x6488], 3
mov eax, dword [esp + 0x118c]
test eax, eax
je 0x437b80
push eax
call fcn.004c1aa4
add esp, 4
jmp 0x437b80
mov dword [esp + 0x10], 0x33
mov dword [esp + 0x14], 1
jmp 0x437fde
mov edx, dword [0x531870]
mov eax, edx
xor eax, dword [esp + 0x24]
xor ecx, ecx
and eax, 0xffff
or eax, ecx
mov dword [esp + 0x10], esi
je 0x437f2e
cmp edx, 0xffff
jne 0x437f01
cmp dword [0x531874], ecx
je 0x437f2e
push 0x2ae
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
add esp, 8
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], 1
jmp 0x437fde
push 4
push 0x5317fa
push 0x52057c
mov byte [esp + 0x2478], 0x50
mov dword [esp + 0x2479], 0x6064b
call fcn.004c356e
add esp, 0xc
test eax, eax
je 0x437f8f
cmp byte [0x53296c], 0
je 0x437f7d
push 4
lea eax, [esp + 0x2470]
push eax
push 0x52057c
call fcn.004c356e
add esp, 0xc
test eax, eax
je 0x437f8f
mov dword [esp + 0x3c], 1
mov dword [esp + 0x14], 1
jmp 0x437fde
mov dword [esp + 0x3c], 0
mov dword [esp + 0x14], 1
jmp 0x437fde
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
jmp 0x437fde
push 0x5318cc
push 0x2ab
mov dword [esp + 0x18], esi
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
add esp, 0xc
mov dword [esp + 0x14], 1
jmp 0x437fde
mov dword [esp + 0x10], esi
mov ecx, dword [0x5317d8]
mov edx, dword [0x5317dc]
mov eax, dword [0x531798]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x5317a0]
mov dword [esp + 0x88], edx
mov edx, dword [0x5317a4]
xor esi, esi
cmp byte [0x532964], 0
mov dword [esp + 0xa0], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
je 0x438071
push 0x4d7bac
push 0x550472
mov dword [0x532968], esi
call fcn.00461af0
mov ecx, dword [0x5317b8]
cmp ecx, esi
je 0x43804a
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov dword [0x5317b8], esi
call fcn.004400b0
cmp byte [0x54b331], 0
push 0x550472
sete al
lea eax, [eax*4 + 0x54]
push eax
call fcn.004a0b20
cmp ebx, esi
mov dword [esp + 0x18], esi
jle 0x4389ae
mov eax, dword [esp + 0x40]
shl eax, 6
mov dword [esp + 0x9c], eax
jmp 0x438090
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x9c]
add ecx, eax
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x38], ecx
lea ecx, [eax + edx*8]
mov dword [0x521788], ecx
lea ecx, [esp + 0x10c]
call fcn.0047fd20
cmp byte [0x532964], 0
mov dword [esp + 0x90], eax
je 0x438134
mov edx, dword [0x521788]
mov eax, dword [edx + 0x20]
cmp eax, dword [0x532968]
je 0x438134
movzx ecx, word [0x531860]
cmp eax, ecx
jne 0x4380fa
push 0x4d7b60
push 0x550472
call fcn.00461af0
jmp 0x438105
push eax
push 0x550472
call fcn.00437250
mov edx, dword [0x521788]
mov ecx, dword [0x5317b8]
mov eax, dword [edx + 0x20]
mov dword [0x532968], eax
test ecx, ecx
je 0x438125
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [0x5317b8], 0
call fcn.004400b0
mov eax, dword [0x521788]
mov esi, dword [eax]
add esi, dword [0x5317e0]
mov edi, dword [eax + 4]
adc edi, dword [0x5317e4]
push 0
push 0x2000
push edi
push esi
mov dword [esp + 0xa4], esi
call fcn.004c43d0
mov ebx, eax
mov eax, esi
sub eax, ebx
mov esi, edi
sbb esi, edx
test edi, edi
jg 0x43822c
jl 0x438181
cmp dword [esp + 0x94], 0
jae 0x43822c
push 0x2ae
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
add esp, 8
cmp dword [esp + 0x38], 0
mov dword [esp + 0x10], 2
jne 0x43821f
mov eax, dword [0x5317e0]
mov ecx, dword [0x5317e4]
mov edx, eax
or edx, ecx
je 0x43821f
mov dword [esp + 0x20], ecx
xor ecx, ecx
push ecx
mov dword [esp + 0x20], eax
mov eax, dword [0x521788]
mov dword [0x5317e0], ecx
mov dword [0x5317e4], ecx
mov edi, dword [eax + 4]
mov esi, dword [eax]
push 0x2000
push edi
push esi
mov dword [esp + 0xa4], esi
call fcn.004c43d0
mov ebx, eax
mov eax, esi
sub eax, ebx
mov esi, edi
sbb esi, edx
test edi, edi
jg 0x43822c
jl 0x438207
cmp dword [esp + 0x94], 0
jae 0x43822c
push 0x2ae
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
add esp, 8
mov dword [esp + 0x10], 3
jmp case.0x438792.78
xor edi, edi
cmp eax, dword [0x5317d8]
jne 0x43826d
cmp esi, dword [0x5317dc]
jne 0x43826d
cmp byte [0x532964], 0
jne 0x43826d
mov eax, dword [0x531798]
mov ecx, dword [0x531794]
sub eax, ebx
sub eax, ecx
cdq
add dword [0x5317a0], eax
adc dword [0x5317a4], edx
add ebx, ecx
mov dword [0x531798], ebx
jmp 0x4382ea
mov ecx, dword [0x5317b8]
mov edx, dword [ecx]
push edi
push esi
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [0x5317b8]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [0x531794]
push 0x2000
push ecx
mov dword [0x5317d8], eax
mov dword [0x5317dc], edx
call fcn.004402c0
cdq
mov ecx, edx
cmp ecx, edi
mov esi, eax
mov dword [0x5317a0], esi
mov dword [0x5317a4], ecx
jg 0x4382c9
jl 0x438207
cmp esi, edi
jbe 0x438207
mov edx, dword [0x531794]
lea eax, [ebx + edx]
mov dword [0x531798], eax
mov eax, ebx
cdq
sub esi, eax
sbb ecx, edx
mov dword [0x5317a0], esi
mov dword [0x5317a4], ecx
push 4
push 0x52057c
call fcn.00440430
test eax, eax
je 0x438207
push 4
push 0x5317f0
push 0x52057c
call fcn.004c356e
add esp, 0xc
test eax, eax
je 0x4383de
push 0x2ae
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
mov eax, dword [0x5317e0]
mov ecx, dword [0x5317e4]
add esp, 8
mov dword [esp + 0x10], 2
mov edx, eax
cmp dword [esp + 0x38], edi
jne 0x438353
or edx, ecx
jne 0x438373
jmp 0x43835b
or edx, ecx
jne case.0x438792.78
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov ebx, edx
or ebx, esi
je case.0x438792.78
mov ebx, eax
or ebx, ecx
je 0x438389
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [0x5317e0], edi
mov dword [0x5317e4], edi
jmp 0x438395
mov dword [0x5317e0], edx
mov dword [0x5317e4], esi
mov eax, dword [0x521788]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
call fcn.00440670
cmp eax, edi
jne 0x438207
push 4
push 0x52057c
call fcn.00440430
test eax, eax
je 0x438207
push 4
push 0x5317f0
push 0x52057c
call fcn.004c356e
add esp, 0xc
test eax, eax
jne 0x438207
call fcn.004634b0
mov esi, eax
cmp esi, edi
je 0x43840a
push 0x2ae
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
add esp, 8
mov dword [esp + 0x10], esi
jmp case.0x438792.78
movzx ecx, word [0x531820]
push edi
push 0x531802
push 2
xor eax, eax
push ecx
mov word [0x5318cc], ax
call fcn.00440820
cmp eax, edi
je 0x43845c
cmp eax, dword [esp + 0x10]
jle 0x438435
mov dword [esp + 0x10], eax
cmp eax, 1
jle 0x43845c
push 0x5318cc
push 0x2ab
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
add esp, 0xc
jmp case.0x438792.78
mov eax, dword [0x5317e8]
cmp eax, edi
je 0x438474
push eax
call fcn.004c1aa4
add esp, 4
mov dword [0x5317e8], edi
movzx edx, word [0x531822]
push edi
push edi
push 3
push edx
call fcn.00440820
cmp eax, edi
je 0x438498
cmp eax, dword [esp + 0x10]
jle 0x438493
mov dword [esp + 0x10], eax
cmp eax, 1
jg 0x43843a
movzx eax, word [0x531822]
mov ecx, dword [0x5317e8]
push 1
push eax
push ecx
call fcn.00463320
mov eax, dword [0x5328cc]
movzx ecx, word [0x531822]
push 0x3000
lea edx, [esp + 0x3478]
push edx
push eax
mov eax, dword [0x5317e8]
push ecx
call fcn.00437020
test al, al
je 0x4384fe
push 0x800
push 0x5318cc
lea edx, [esp + 0x347c]
push edx
call fcn.00486e20
push 0x800
push edi
push 0x5318cc
call fcn.00460410
mov eax, dword [0x521788]
mov ecx, dword [eax + 0x28]
mov dword [0x5328d0], ecx
mov edx, dword [eax + 0x2c]
mov dword [0x5328d4], edx
mov ecx, dword [eax + 0x30]
mov dword [0x5328d8], ecx
mov edx, dword [eax + 0x34]
mov dword [0x5328dc], edx
mov ecx, dword [eax + 0x38]
mov dword [0x5328e0], ecx
mov edx, dword [eax + 0x3c]
lea eax, [esp + 0x64]
push eax
movzx eax, word [0x531822]
lea ecx, [esp + 0x60]
mov dword [0x5328e4], edx
push ecx
mov ecx, dword [0x5317e8]
lea edx, [esp + 0x74]
push edx
call fcn.00436f30
test al, al
je 0x438598
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov dword [0x5328d0], eax
mov eax, dword [esp + 0x60]
mov dword [0x5328d4], ecx
mov ecx, dword [esp + 0x64]
mov dword [0x5328d8], edx
mov edx, dword [esp + 0x68]
mov dword [0x5328dc], eax
mov dword [0x5328e0], ecx
mov dword [0x5328e4], edx
movzx eax, word [0x531822]
mov ecx, dword [0x5317e8]
push 0x531804
push eax
push ecx
call fcn.00486150
mov eax, dword [esp + 0x90]
cmp eax, edi
je 0x4385d1
cmp word [eax], di
je 0x4385d1
push 0x800
push eax
push 0x5318cc
call fcn.0047f480
push 0x5318cc
call fcn.00460130
cmp word [eax], 0x5c
sete bl
test bl, bl
je 0x4385eb
xor edx, edx
mov word [eax], dx
cmp word [0x5318cc], di
je 0x438626
cmp word [0x5318ce], di
je 0x438626
mov eax, 0x5318d0
cmp word [0x5318d0], di
je 0x438626
jmp 0x438610
cmp word [eax], 0x3a
jne 0x43861e
mov ecx, 0x5f
mov word [eax], cx
add eax, 2
cmp word [eax], di
jne 0x438610
push 0x5318cc
push 0x5318cc
call fcn.00460680
push 0x800
push 0x5318cc
push edi
call fcn.0040aa20
mov eax, dword [0x521788]
test byte [eax + 0x24], 0x10
je 0x438666
mov edx, dword [eax + 0x10]
or edx, dword [eax + 0x14]
jne 0x438666
mov eax, dword [eax + 0x1c]
cmp eax, edi
je 0x438664
cmp eax, 0xb
jne 0x438666
mov bl, 1
cmp word [0x54f452], 0x49
movzx edx, byte [0x54b331]
sete al
push edi
movzx ecx, al
push ecx
push edx
push 0x5318cc
push edi
call fcn.0040a610
test al, al
je 0x4389ae
movzx eax, word [0x54f452]
push eax
call fcn.004870e0
cmp eax, 0x49
jne 0x4386b9
push 0x5318cc
push 0x550472
push 0x54f454
push edi
push edi
call fcn.00441c00
cmp byte [0x54b331], 0
jne case.0x438792.89
xor esi, esi
test bl, bl
jne 0x4387db
push 0x5318cc
call fcn.00440d90
cmp eax, 0xffffffff
je 0x4387c1
cmp eax, edi
je 0x438714
cmp eax, 1
jne case.0x438792.89
mov eax, dword [0x54b188]
cmp eax, 2
je case.0x438792.78
cmp byte [0x54b1ac], 0
jne 0x438710
cmp byte [0x54b1ab], 0
je 0x438722
cmp esi, edi
jmp 0x43871c
mov eax, dword [0x54b188]
cmp eax, 2
je case.0x438792.78
cmp eax, edi
je case.0x438792.66
cmp eax, 3
jne case.0x438792.89
xor eax, eax
movzx ecx, word [eax + 0x5318cc]
mov word [esp + eax + 0x2474], cx
add eax, 2
cmp cx, di
jne 0x438731
movzx ecx, word [0x531808]
movzx edx, word [0x531806]
mov eax, dword [0x52056c]
push edi
shl ecx, 0x10
add ecx, edx
push ecx
mov ecx, dword [0x520568]
push eax
push ecx
lea edx, [esp + 0x2484]
push edx
push edi
call fcn.0040b930
cmp al, 0x43
je 0x4389ae
movsx eax, al
add eax, 0xffffffbf
cmp eax, 0x38
ja case.0x438792.66
movzx eax, byte [eax + 0x438d30]
jmp dword [eax*4 + 0x438d1c]
xor eax, eax
jmp 0x4387a0
movzx ecx, word [esp + eax + 0x2474]
mov word [eax + 0x5318cc], cx
add eax, 2
cmp cx, di
jne 0x4387a0
mov esi, 1
jmp 0x4386d0
cmp byte [0x54b1ab], 0
je case.0x438792.89
cmp esi, edi
je case.0x438792.78
jmp case.0x438792.89
cmp byte [0x54b1ab], 0
jne case.0x438792.78
cmp word [0x5318cc], di
je case.0x438792.78
cmp dword [0x54b1b0], 1
je case.0x438792.78
mov ecx, dword [0x521788]
mov eax, dword [ecx + 0x1c]
xor esi, esi
cmp eax, edi
je 0x438816
cmp eax, 0xb
jne 0x438819
mov esi, dword [ecx + 0x24]
push 0x5318cc
call fcn.0043ccc0
test al, al
jne 0x4388ab
cmp byte [0x54b30e], al
push esi
sete cl
movzx edx, cl
push edx
push 0x5318cc
call fcn.0043d2f0
test eax, eax
je 0x4388ab
push 1
push 0x5318cc
call fcn.0043d3a0
cmp byte [0x54b30e], 0
push esi
sete al
movzx ecx, al
push ecx
push 0x5318cc
call fcn.0043d2f0
test eax, eax
je 0x4388ab
push 0x5318cc
push 0x1f7
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
add esp, 0xc
push 0x5318cc
mov ecx, 0x51ef08
call fcn.00433880
mov ecx, 0x51ef08
call fcn.00433a70
jmp case.0x438792.78
push 0x5318cc
lea ecx, [esp + 0xb0]
call fcn.0047fa40
mov edx, dword [0x5328d4]
mov eax, dword [0x5328d0]
push edx
push eax
lea ecx, [esp + 0x7c]
call fcn.0041f270
mov ecx, dword [0x5328e4]
mov edx, dword [0x5328e0]
push ecx
push edx
lea ecx, [esp + 0x7c]
call fcn.0041f270
mov eax, dword [0x5328dc]
mov ecx, dword [0x5328d8]
push eax
push ecx
lea ecx, [esp + 0x7c]
call fcn.0041f270
jmp case.0x438792.78
mov dword [0x54b188], 1
mov edx, dword [0x521788]
test byte [edx + 0x40], 1
je 0x438975
call fcn.004869b0
cmp eax, edi
je 0x438975
cmp eax, 9
je 0x438b85
cmp eax, 1
jne 0x43895c
cmp dword [0x520528], edi
jne 0x438956
push 0x5318cc
push 0x1fb
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
add esp, 0xc
inc dword [esp + 0x30]
jmp case.0x438792.78
cmp eax, dword [esp + 0x10]
jle 0x438966
mov dword [esp + 0x10], eax
push 0x5318cc
push 0x1fb
jmp 0x438444
mov dword [0x53189c], edi
call fcn.00437400
cmp eax, edi
je case.0x438792.78
cmp eax, dword [esp + 0x10]
jle 0x43898e
mov dword [esp + 0x10], eax
cmp dword [0x53189c], 1
jg 0x438b93
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
jl 0x438090
mov edx, dword [esp + 0x88]
mov ecx, dword [0x5317b8]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
push 0
push edx
mov edx, dword [esp + 0x8c]
push edx
call eax
mov ecx, dword [0x5317b8]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [0x531794]
push 0x2000
push ecx
mov dword [0x5317d8], eax
mov dword [0x5317dc], edx
call fcn.004402c0
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
inc dword [esp + 0x40]
cmp dword [esp + 0x14], 0
mov dword [0x531798], edx
mov dword [0x5317a0], eax
mov dword [0x5317a4], ecx
je 0x437b60
push 0x800
lea edx, [esp + 0x2478]
push edx
lea ecx, [esp + 0xb4]
call fcn.0047fc50
test al, al
je 0x438b35
mov esi, dword [esp + 0x74]
add esi, 0x10
lea ecx, [ecx]
mov eax, dword [esi - 0x10]
mov dword [esp + 0x64], eax
mov ecx, dword [esi - 0xc]
mov dword [esp + 0x68], ecx
mov edx, dword [esi - 8]
mov dword [esp + 0x24], edx
mov eax, dword [esi - 4]
mov dword [esp + 0x28], eax
mov ecx, dword [esi]
mov dword [esp + 0x1c], ecx
mov edx, dword [esi + 4]
lea ecx, [esp + 0x44]
mov dword [esp + 0x20], edx
call fcn.004072b0
lea ecx, [esp + 0x6c]
call fcn.004072b0
lea ecx, [esp + 0x5c]
call fcn.004072b0
cmp dword [0x54c3fc], 0
je 0x438aab
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x48]
call fcn.004826e0
cmp dword [0x54c400], 0
je 0x438ad0
cmp dword [esp + 0x28], 0
jne 0x438ac2
cmp dword [esp + 0x24], 0
je 0x438ad0
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x70]
call fcn.004826e0
cmp dword [0x54c404], 0
je 0x438af5
cmp dword [esp + 0x20], 0
jne 0x438ae7
cmp dword [esp + 0x1c], 0
je 0x438af5
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x60]
call fcn.004826e0
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x2480]
push eax
call fcn.0043cb10
push 0x800
lea ecx, [esp + 0x2478]
push ecx
lea ecx, [esp + 0xb4]
add esi, 0x18
call fcn.0047fc50
test al, al
jne 0x438a50
cmp byte [0x534c20], 0
jne 0x438bf9
cmp dword [esp + 0x3c], 0
je 0x438bf9
cmp byte [0x532964], 0
jne 0x438bf9
push 0x2ae
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
mov edi, dword [esp + 0x18]
add esp, 8
test edi, edi
jne 0x438bfd
mov edi, 1
jmp 0x438bfd
push edi
call fcn.004ad030
add esp, 4
jmp 0x438a25
mov byte [esp + 0x6488], 2
lea ecx, [esp + 0xac]
call fcn.00401b10
mov byte [esp + 0x6488], 1
mov eax, dword [esp + 0x74]
cmp eax, edi
je 0x438bc0
push eax
call fcn.004c1aa4
add esp, 4
mov byte [esp + 0x6488], 0
lea ecx, [esp + 0x10c]
call fcn.00401b10
mov dword [esp + 0x6488], 0xffffffff
mov eax, dword [esp + 0x4c]
cmp eax, edi
je 0x438bf0
push eax
call fcn.004c1aa4
add esp, 4
mov eax, dword [esp + 0x10]
jmp 0x438cf8
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
movzx ebx, word [esp + 0x30]
inc esi
cmp esi, ebx
jne 0x438c36
cmp word [0x54f452], 0x49
je 0x438c36
cmp dword [0x5328e8], 0
jne 0x438c36
push 0x346
call fcn.00475570
push eax
push 0x550472
call fcn.004ad680
add esp, 8
test esi, esi
jne 0x438c51
cmp edi, 1
jg 0x438c51
xor dx, dx
cmp dx, word [esp + 0x2c]
sbb edi, edi
and edi, 0x46
add edi, 0xb
jmp 0x438c86
cmp esi, ebx
jne 0x438c61
cmp edi, 1
jg 0x438c61
mov edi, 0x52
jmp 0x438c86
cmp word [esp + 0x2c], 0
jbe 0x438c75
cmp edi, 1
jg 0x438c75
mov edi, 0x51
jmp 0x438c86
cmp word [esp + 0x30], 0
jbe 0x438c86
test edi, edi
jne 0x438c86
mov edi, 1
mov byte [esp + 0x6488], 2
mov eax, dword [esp + 0xac]
test eax, eax
je 0x438ca2
push eax
call fcn.004c1aa4
add esp, 4
mov byte [esp + 0x6488], 1
cmp dword [esp + 0x74], 0
je 0x438cbe
mov eax, dword [esp + 0x74]
push eax
call fcn.004c1aa4
add esp, 4
mov byte [esp + 0x6488], 0
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x438cda
push eax
call fcn.004c1aa4
add esp, 4
mov dword [esp + 0x6488], 0xffffffff
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x438cf6
push eax
call fcn.004c1aa4
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x6480]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x6468]
xor ecx, esp
call fcn.004c1302
mov esp, ebp
pop ebp
ret