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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d2338
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x646c
call fcn.004bfc70
mov eax, dword [0x4ea93c]
xor eax, esp
mov dword [esp + 0x6468], eax
push ebx
push esi
push edi
mov eax, dword [0x4ea93c]
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.00436a20
mov dword [esp + 0x6488], esi
lea ecx, [esp + 0x10c]
call fcn.0047e890
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.0047e890
mov byte [esp + 0x6488], 3
mov eax, dword [esp + 0x4c]
mov dword [0x521028], eax
mov dword [0x51fde8], 1
nop
cmp byte [0x5344c0], 0
jne 0x438305
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 0x437476
cmp byte [0x532204], 0
je 0x4378ba
mov eax, dword [esp + 0x50]
cmp ebx, eax
jl 0x437498
cmp edi, dword [esp + 0x54]
jbe 0x437494
mov ecx, edi
sub ecx, eax
push ecx
lea ecx, [esp + 0x50]
call fcn.00436a20
jmp 0x437498
mov dword [esp + 0x50], edi
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
push 4
add eax, edx
push 0x51fe1c
mov dword [0x521028], eax
call fcn.0043fcb0
test eax, eax
je 0x4377a1
push 4
push 0x531095
push 0x51fe1c
call fcn.004c1c04
add esp, 0xc
test eax, eax
jne 0x4377b6
call fcn.00462f00
test eax, eax
jne 0x437881
movzx edx, byte [0x5310c9]
movzx eax, word [0x5310e8]
push edx
push 0x5310cc
push 2
xor ecx, ecx
push eax
mov word [0x53116c], cx
call fcn.004400b0
test eax, eax
je 0x43751c
cmp eax, esi
jle 0x437513
mov esi, eax
cmp eax, 1
jg 0x43788f
movzx ecx, word [0x5310ea]
push 0
push 0
push 3
push ecx
call fcn.004400b0
test eax, eax
je 0x437542
cmp eax, esi
jle 0x437539
mov esi, eax
cmp eax, 1
jg 0x43788f
movzx edx, word [0x5310ea]
mov eax, dword [0x531088]
push 0
push edx
push eax
call fcn.00462650
movzx ecx, word [0x5310ea]
mov edx, dword [0x531088]
push 0x5310ce
push ecx
push edx
call fcn.00484f80
movzx eax, word [0x5310ec]
push 0
push 0
push 0
push eax
call fcn.004400b0
test eax, eax
je 0x437596
cmp eax, esi
jle 0x43758d
mov esi, eax
cmp eax, 1
jg 0x43788f
movzx eax, word [0x5310ea]
mov edx, dword [0x53216c]
push 0x3000
lea ecx, [esp + 0x3478]
push ecx
push edx
push eax
mov eax, dword [0x531088]
call fcn.00436910
test al, al
je 0x4375e8
push 0x800
push 0x53116c
lea ecx, [esp + 0x347c]
push ecx
call fcn.00485c50
push 0x800
push 0
push 0x53116c
call fcn.0045f6f0
movzx eax, word [0x5310d0]
movzx ecx, word [0x5310d2]
lea edx, [esp + 0xa4]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
mov edx, dword [0x521028]
add edx, 0x28
push edx
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
mov ecx, dword [0x521028]
xor eax, eax
mov dword [ecx + 0x30], eax
add ecx, 0x30
mov dword [ecx + 4], eax
mov ecx, dword [0x521028]
add ecx, 0x38
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [0x521028]
lea ecx, [eax + 0x38]
push ecx
mov ecx, dword [0x531088]
lea edx, [eax + 0x30]
add eax, 0x28
push edx
push eax
movzx eax, word [0x5310ea]
call fcn.00436820
movzx eax, word [0x5310ea]
mov ecx, dword [0x531088]
call fcn.004369c0
mov bl, al
test bl, bl
je 0x437695
push 0x53116c
push 0x605
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
add esp, 0xc
lea ecx, [esp + 0x16c]
call fcn.00402590
mov byte [esp + 0x6488], 4
push 0x2300
lea eax, [esp + 0x170]
push 0
push eax
call fcn.004c05a0
add esp, 0xc
push 0x800
push 0x53116c
lea ecx, [esp + 0x194]
push ecx
call fcn.0047e340
mov edx, dword [0x521028]
add edx, 0x28
push edx
lea ecx, [esp + 0x11a0]
call fcn.00481510
cmp dword [0x53340c], 1
mov eax, dword [0x5310e0]
mov ecx, dword [0x5310e4]
mov dword [esp + 0x11bc], eax
mov dword [esp + 0x11c0], ecx
mov eax, 5
je 0x43772b
cmp dword [0x54aa7c], 0
jne 0x43772b
cmp byte [0x54ecc8], 0
jne 0x43772b
mov eax, VariantClear
test bl, bl
jne 0x437772
push eax
push 0
lea edx, [esp + 0x174]
push edx
mov ecx, 0x5448f8
call fcn.00421010
test eax, eax
je 0x437772
call fcn.004364f0
test eax, eax
je 0x43776e
push 0x53116c
lea ecx, [esp + 0x110]
call fcn.0047e700
inc dword [esp + 0x34]
inc edi
add dword [esp + 0x18], 0x48
jmp 0x437772
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 0x437460
push eax
call fcn.004bff04
add esp, 4
jmp 0x437460
mov dword [esp + 0x10], 0x33
mov dword [esp + 0x14], 1
jmp 0x4378be
mov edx, dword [0x531110]
mov eax, edx
xor eax, dword [esp + 0x24]
xor ecx, ecx
and eax, 0xffff
or eax, ecx
mov dword [esp + 0x10], esi
je 0x43780e
cmp edx, 0xffff
jne 0x4377e1
cmp dword [0x531114], ecx
je 0x43780e
push 0x2ae
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
add esp, 8
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], 1
jmp 0x4378be
push 4
push 0x53109a
push 0x51fe1c
mov byte [esp + 0x2478], 0x50
mov dword [esp + 0x2479], 0x6064b
call fcn.004c1c04
add esp, 0xc
test eax, eax
je 0x43786f
cmp byte [0x53220c], 0
je 0x43785d
push 4
lea eax, [esp + 0x2470]
push eax
push 0x51fe1c
call fcn.004c1c04
add esp, 0xc
test eax, eax
je 0x43786f
mov dword [esp + 0x3c], 1
mov dword [esp + 0x14], 1
jmp 0x4378be
mov dword [esp + 0x3c], 0
mov dword [esp + 0x14], 1
jmp 0x4378be
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
jmp 0x4378be
push 0x53116c
push 0x2ab
mov dword [esp + 0x18], esi
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
add esp, 0xc
mov dword [esp + 0x14], 1
jmp 0x4378be
mov dword [esp + 0x10], esi
mov ecx, dword [0x531078]
mov edx, dword [0x53107c]
mov eax, dword [0x531038]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x531040]
mov dword [esp + 0x88], edx
mov edx, dword [0x531044]
xor esi, esi
cmp byte [0x532204], 0
mov dword [esp + 0xa0], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
je 0x437951
push 0x4d6bc4
push 0x54fd12
mov dword [0x532208], esi
call fcn.00460df0
mov ecx, dword [0x531058]
cmp ecx, esi
je 0x43792a
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov dword [0x531058], esi
call fcn.0043f930
cmp byte [0x54abd1], 0
push 0x54fd12
sete al
lea eax, [eax*4 + 0x54]
push eax
call fcn.0049f520
cmp ebx, esi
mov dword [esp + 0x18], esi
jle 0x43828e
mov eax, dword [esp + 0x40]
shl eax, 6
mov dword [esp + 0x9c], eax
jmp 0x437970
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 [0x521028], ecx
lea ecx, [esp + 0x10c]
call fcn.0047ea80
cmp byte [0x532204], 0
mov dword [esp + 0x90], eax
je 0x437a14
mov edx, dword [0x521028]
mov eax, dword [edx + 0x20]
cmp eax, dword [0x532208]
je 0x437a14
movzx ecx, word [0x531100]
cmp eax, ecx
jne 0x4379da
push 0x4d6b78
push 0x54fd12
call fcn.00460df0
jmp 0x4379e5
push eax
push 0x54fd12
call fcn.00436b40
mov edx, dword [0x521028]
mov ecx, dword [0x531058]
mov eax, dword [edx + 0x20]
mov dword [0x532208], eax
test ecx, ecx
je 0x437a05
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [0x531058], 0
call fcn.0043f930
mov eax, dword [0x521028]
mov esi, dword [eax]
add esi, dword [0x531080]
mov edi, dword [eax + 4]
adc edi, dword [0x531084]
push 0
push 0x2000
push edi
push esi
mov dword [esp + 0xa4], esi
call fcn.004c2ab0
mov ebx, eax
mov eax, esi
sub eax, ebx
mov esi, edi
sbb esi, edx
test edi, edi
jg 0x437b0c
jl 0x437a61
cmp dword [esp + 0x94], 0
jae 0x437b0c
push 0x2ae
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
add esp, 8
cmp dword [esp + 0x38], 0
mov dword [esp + 0x10], 2
jne 0x437aff
mov eax, dword [0x531080]
mov ecx, dword [0x531084]
mov edx, eax
or edx, ecx
je 0x437aff
mov dword [esp + 0x20], ecx
xor ecx, ecx
push ecx
mov dword [esp + 0x20], eax
mov eax, dword [0x521028]
mov dword [0x531080], ecx
mov dword [0x531084], ecx
mov edi, dword [eax + 4]
mov esi, dword [eax]
push 0x2000
push edi
push esi
mov dword [esp + 0xa4], esi
call fcn.004c2ab0
mov ebx, eax
mov eax, esi
sub eax, ebx
mov esi, edi
sbb esi, edx
test edi, edi
jg 0x437b0c
jl 0x437ae7
cmp dword [esp + 0x94], 0
jae 0x437b0c
push 0x2ae
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
add esp, 8
mov dword [esp + 0x10], 3
jmp case.0x438072.78
xor edi, edi
cmp eax, dword [0x531078]
jne 0x437b4d
cmp esi, dword [0x53107c]
jne 0x437b4d
cmp byte [0x532204], 0
jne 0x437b4d
mov eax, dword [0x531038]
mov ecx, dword [0x531034]
sub eax, ebx
sub eax, ecx
cdq
add dword [0x531040], eax
adc dword [0x531044], edx
add ebx, ecx
mov dword [0x531038], ebx
jmp 0x437bca
mov ecx, dword [0x531058]
mov edx, dword [ecx]
push edi
push esi
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [0x531058]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [0x531034]
push 0x2000
push ecx
mov dword [0x531078], eax
mov dword [0x53107c], edx
call fcn.0043fb40
cdq
mov ecx, edx
cmp ecx, edi
mov esi, eax
mov dword [0x531040], esi
mov dword [0x531044], ecx
jg 0x437ba9
jl 0x437ae7
cmp esi, edi
jbe 0x437ae7
mov edx, dword [0x531034]
lea eax, [ebx + edx]
mov dword [0x531038], eax
mov eax, ebx
cdq
sub esi, eax
sbb ecx, edx
mov dword [0x531040], esi
mov dword [0x531044], ecx
push 4
push 0x51fe1c
call fcn.0043fcb0
test eax, eax
je 0x437ae7
push 4
push 0x531090
push 0x51fe1c
call fcn.004c1c04
add esp, 0xc
test eax, eax
je 0x437cbe
push 0x2ae
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
mov eax, dword [0x531080]
mov ecx, dword [0x531084]
add esp, 8
mov dword [esp + 0x10], 2
mov edx, eax
cmp dword [esp + 0x38], edi
jne 0x437c33
or edx, ecx
jne 0x437c53
jmp 0x437c3b
or edx, ecx
jne case.0x438072.78
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov ebx, edx
or ebx, esi
je case.0x438072.78
mov ebx, eax
or ebx, ecx
je 0x437c69
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [0x531080], edi
mov dword [0x531084], edi
jmp 0x437c75
mov dword [0x531080], edx
mov dword [0x531084], esi
mov eax, dword [0x521028]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
call fcn.0043ff00
cmp eax, edi
jne 0x437ae7
push 4
push 0x51fe1c
call fcn.0043fcb0
test eax, eax
je 0x437ae7
push 4
push 0x531090
push 0x51fe1c
call fcn.004c1c04
add esp, 0xc
test eax, eax
jne 0x437ae7
call fcn.004627e0
mov esi, eax
cmp esi, edi
je 0x437cea
push 0x2ae
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
add esp, 8
mov dword [esp + 0x10], esi
jmp case.0x438072.78
movzx ecx, word [0x5310c0]
push edi
push 0x5310a2
push 2
xor eax, eax
push ecx
mov word [0x53116c], ax
call fcn.004400b0
cmp eax, edi
je 0x437d3c
cmp eax, dword [esp + 0x10]
jle 0x437d15
mov dword [esp + 0x10], eax
cmp eax, 1
jle 0x437d3c
push 0x53116c
push 0x2ab
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
add esp, 0xc
jmp case.0x438072.78
mov eax, dword [0x531088]
cmp eax, edi
je 0x437d54
push eax
call fcn.004bff04
add esp, 4
mov dword [0x531088], edi
movzx edx, word [0x5310c2]
push edi
push edi
push 3
push edx
call fcn.004400b0
cmp eax, edi
je 0x437d78
cmp eax, dword [esp + 0x10]
jle 0x437d73
mov dword [esp + 0x10], eax
cmp eax, 1
jg 0x437d1a
movzx eax, word [0x5310c2]
mov ecx, dword [0x531088]
push 1
push eax
push ecx
call fcn.00462650
mov eax, dword [0x53216c]
movzx ecx, word [0x5310c2]
push 0x3000
lea edx, [esp + 0x3478]
push edx
push eax
mov eax, dword [0x531088]
push ecx
call fcn.00436910
test al, al
je 0x437dde
push 0x800
push 0x53116c
lea edx, [esp + 0x347c]
push edx
call fcn.00485c50
push 0x800
push edi
push 0x53116c
call fcn.0045f6f0
mov eax, dword [0x521028]
mov ecx, dword [eax + 0x28]
mov dword [0x532170], ecx
mov edx, dword [eax + 0x2c]
mov dword [0x532174], edx
mov ecx, dword [eax + 0x30]
mov dword [0x532178], ecx
mov edx, dword [eax + 0x34]
mov dword [0x53217c], edx
mov ecx, dword [eax + 0x38]
mov dword [0x532180], ecx
mov edx, dword [eax + 0x3c]
lea eax, [esp + 0x64]
push eax
movzx eax, word [0x5310c2]
lea ecx, [esp + 0x60]
mov dword [0x532184], edx
push ecx
mov ecx, dword [0x531088]
lea edx, [esp + 0x74]
push edx
call fcn.00436820
test al, al
je 0x437e78
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov dword [0x532170], eax
mov eax, dword [esp + 0x60]
mov dword [0x532174], ecx
mov ecx, dword [esp + 0x64]
mov dword [0x532178], edx
mov edx, dword [esp + 0x68]
mov dword [0x53217c], eax
mov dword [0x532180], ecx
mov dword [0x532184], edx
movzx eax, word [0x5310c2]
mov ecx, dword [0x531088]
push 0x5310a4
push eax
push ecx
call fcn.00484f80
mov eax, dword [esp + 0x90]
cmp eax, edi
je 0x437eb1
cmp word [eax], di
je 0x437eb1
push 0x800
push eax
push 0x53116c
call fcn.0047e340
push 0x53116c
call fcn.0045f410
cmp word [eax], 0x5c
sete bl
test bl, bl
je 0x437ecb
xor edx, edx
mov word [eax], dx
cmp word [0x53116c], di
je 0x437f06
cmp word [0x53116e], di
je 0x437f06
mov eax, 0x531170
cmp word [0x531170], di
je 0x437f06
jmp 0x437ef0
cmp word [eax], 0x3a
jne 0x437efe
mov ecx, 0x5f
mov word [eax], cx
add eax, 2
cmp word [eax], di
jne 0x437ef0
push 0x53116c
push 0x53116c
call fcn.0045f960
push 0x800
push 0x53116c
push edi
call fcn.0040a4a0
mov eax, dword [0x521028]
test byte [eax + 0x24], 0x10
je 0x437f46
mov edx, dword [eax + 0x10]
or edx, dword [eax + 0x14]
jne 0x437f46
mov eax, dword [eax + 0x1c]
cmp eax, edi
je 0x437f44
cmp eax, 0xb
jne 0x437f46
mov bl, 1
cmp word [0x54ecf2], 0x49
movzx edx, byte [0x54abd1]
sete al
push edi
movzx ecx, al
push ecx
push edx
push 0x53116c
push edi
call fcn.0040a090
test al, al
je 0x43828e
movzx eax, word [0x54ecf2]
push eax
call fcn.00485f10
cmp eax, 0x49
jne 0x437f99
push 0x53116c
push 0x54fd12
push 0x54ecf4
push edi
push edi
call fcn.00441490
cmp byte [0x54abd1], 0
jne case.0x438072.89
xor esi, esi
test bl, bl
jne 0x4380bb
push 0x53116c
call fcn.00440620
cmp eax, 0xffffffff
je 0x4380a1
cmp eax, edi
je 0x437ff4
cmp eax, 1
jne case.0x438072.89
mov eax, dword [0x54aa24]
cmp eax, 2
je case.0x438072.78
cmp byte [0x54aa48], 0
jne 0x437ff0
cmp byte [0x54aa47], 0
je 0x438002
cmp esi, edi
jmp 0x437ffc
mov eax, dword [0x54aa24]
cmp eax, 2
je case.0x438072.78
cmp eax, edi
je case.0x438072.66
cmp eax, 3
jne case.0x438072.89
xor eax, eax
movzx ecx, word [eax + 0x53116c]
mov word [esp + eax + 0x2474], cx
add eax, 2
cmp cx, di
jne 0x438011
movzx ecx, word [0x5310a8]
movzx edx, word [0x5310a6]
mov eax, dword [0x51fe0c]
push edi
shl ecx, 0x10
add ecx, edx
push ecx
mov ecx, dword [0x51fe08]
push eax
push ecx
lea edx, [esp + 0x2484]
push edx
push edi
call fcn.0040b3b0
cmp al, 0x43
je 0x43828e
movsx eax, al
add eax, 0xffffffbf
cmp eax, 0x38
ja case.0x438072.66
movzx eax, byte [eax + 0x438610]
jmp dword [eax*4 + 0x4385fc]
xor eax, eax
jmp 0x438080
movzx ecx, word [esp + eax + 0x2474]
mov word [eax + 0x53116c], cx
add eax, 2
cmp cx, di
jne 0x438080
mov esi, 1
jmp 0x437fb0
cmp byte [0x54aa47], 0
je case.0x438072.89
cmp esi, edi
je case.0x438072.78
jmp case.0x438072.89
cmp byte [0x54aa47], 0
jne case.0x438072.78
cmp word [0x53116c], di
je case.0x438072.78
cmp dword [0x54aa4c], 1
je case.0x438072.78
mov ecx, dword [0x521028]
mov eax, dword [ecx + 0x1c]
xor esi, esi
cmp eax, edi
je 0x4380f6
cmp eax, 0xb
jne 0x4380f9
mov esi, dword [ecx + 0x24]
push 0x53116c
call fcn.0043c780
test al, al
jne 0x43818b
cmp byte [0x54abae], al
push esi
sete cl
movzx edx, cl
push edx
push 0x53116c
call fcn.0043c440
test eax, eax
je 0x43818b
push 1
push 0x53116c
call fcn.0043c4e0
cmp byte [0x54abae], 0
push esi
sete al
movzx ecx, al
push ecx
push 0x53116c
call fcn.0043c440
test eax, eax
je 0x43818b
push 0x53116c
push 0x1f7
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
add esp, 0xc
push 0x53116c
mov ecx, 0x51e7a8
call fcn.004331d0
mov ecx, 0x51e7a8
call fcn.004333c0
jmp case.0x438072.78
push 0x53116c
lea ecx, [esp + 0xb0]
call fcn.0047e700
mov edx, dword [0x532174]
mov eax, dword [0x532170]
push edx
push eax
lea ecx, [esp + 0x7c]
call fcn.0041ec70
mov ecx, dword [0x532184]
mov edx, dword [0x532180]
push ecx
push edx
lea ecx, [esp + 0x7c]
call fcn.0041ec70
mov eax, dword [0x53217c]
mov ecx, dword [0x532178]
push eax
push ecx
lea ecx, [esp + 0x7c]
call fcn.0041ec70
jmp case.0x438072.78
mov dword [0x54aa24], 1
mov edx, dword [0x521028]
test byte [edx + 0x40], 1
je 0x438255
call fcn.004857e0
cmp eax, edi
je 0x438255
cmp eax, 9
je 0x438465
cmp eax, 1
jne 0x43823c
cmp dword [0x51fdc8], edi
jne 0x438236
push 0x53116c
push 0x1fb
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
add esp, 0xc
inc dword [esp + 0x30]
jmp case.0x438072.78
cmp eax, dword [esp + 0x10]
jle 0x438246
mov dword [esp + 0x10], eax
push 0x53116c
push 0x1fb
jmp 0x437d24
mov dword [0x53113c], edi
call fcn.00436cf0
cmp eax, edi
je case.0x438072.78
cmp eax, dword [esp + 0x10]
jle 0x43826e
mov dword [esp + 0x10], eax
cmp dword [0x53113c], 1
jg 0x438473
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
jl 0x437970
mov edx, dword [esp + 0x88]
mov ecx, dword [0x531058]
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 [0x531058]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [0x531034]
push 0x2000
push ecx
mov dword [0x531078], eax
mov dword [0x53107c], edx
call fcn.0043fb40
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 [0x531038], edx
mov dword [0x531040], eax
mov dword [0x531044], ecx
je 0x437440
push 0x800
lea edx, [esp + 0x2478]
push edx
lea ecx, [esp + 0xb4]
call fcn.0047e9b0
test al, al
je 0x438415
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.00481670
lea ecx, [esp + 0x6c]
call fcn.00481670
lea ecx, [esp + 0x5c]
call fcn.00481670
cmp dword [0x54bc9c], 0
je 0x43838b
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x48]
call fcn.00481510
cmp dword [0x54bca0], 0
je 0x4383b0
cmp dword [esp + 0x28], 0
jne 0x4383a2
cmp dword [esp + 0x24], 0
je 0x4383b0
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x70]
call fcn.00481510
cmp dword [0x54bca4], 0
je 0x4383d5
cmp dword [esp + 0x20], 0
jne 0x4383c7
cmp dword [esp + 0x1c], 0
je 0x4383d5
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x60]
call fcn.00481510
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.0043c5d0
push 0x800
lea ecx, [esp + 0x2478]
push ecx
lea ecx, [esp + 0xb4]
add esi, 0x18
call fcn.0047e9b0
test al, al
jne 0x438330
cmp byte [0x5344c0], 0
jne 0x4384d9
cmp dword [esp + 0x3c], 0
je 0x4384d9
cmp byte [0x532204], 0
jne 0x4384d9
push 0x2ae
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
mov edi, dword [esp + 0x18]
add esp, 8
test edi, edi
jne 0x4384dd
mov edi, 1
jmp 0x4384dd
push edi
call fcn.004ab990
add esp, 4
jmp 0x438305
mov byte [esp + 0x6488], 2
lea ecx, [esp + 0xac]
call fcn.004104a0
mov byte [esp + 0x6488], 1
mov eax, dword [esp + 0x74]
cmp eax, edi
je 0x4384a0
push eax
call fcn.004bff04
add esp, 4
mov byte [esp + 0x6488], 0
lea ecx, [esp + 0x10c]
call fcn.004104a0
mov dword [esp + 0x6488], 0xffffffff
mov eax, dword [esp + 0x4c]
cmp eax, edi
je 0x4384d0
push eax
call fcn.004bff04
add esp, 4
mov eax, dword [esp + 0x10]
jmp 0x4385d8
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
movzx ebx, word [esp + 0x30]
inc esi
cmp esi, ebx
jne 0x438516
cmp word [0x54ecf2], 0x49
je 0x438516
cmp dword [0x532188], 0
jne 0x438516
push 0x346
call fcn.004744a0
push eax
push 0x54fd12
call fcn.004abfe0
add esp, 8
test esi, esi
jne 0x438531
cmp edi, 1
jg 0x438531
xor dx, dx
cmp dx, word [esp + 0x2c]
sbb edi, edi
and edi, 0x46
add edi, 0xb
jmp 0x438566
cmp esi, ebx
jne 0x438541
cmp edi, 1
jg 0x438541
mov edi, 0x52
jmp 0x438566
cmp word [esp + 0x2c], 0
jbe 0x438555
cmp edi, 1
jg 0x438555
mov edi, 0x51
jmp 0x438566
cmp word [esp + 0x30], 0
jbe 0x438566
test edi, edi
jne 0x438566
mov edi, 1
mov byte [esp + 0x6488], 2
mov eax, dword [esp + 0xac]
test eax, eax
je 0x438582
push eax
call fcn.004bff04
add esp, 4
mov byte [esp + 0x6488], 1
cmp dword [esp + 0x74], 0
je 0x43859e
mov eax, dword [esp + 0x74]
push eax
call fcn.004bff04
add esp, 4
mov byte [esp + 0x6488], 0
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x4385ba
push eax
call fcn.004bff04
add esp, 4
mov dword [esp + 0x6488], 0xffffffff
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x4385d6
push eax
call fcn.004bff04
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.004bfc52
mov esp, ebp
pop ebp
ret