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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d3328
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x646c
call fcn.004c0c80
mov eax, dword [0x4eb984]
xor eax, esp
mov dword [esp + 0x6468], eax
push ebx
push esi
push edi
mov eax, dword [0x4eb984]
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.00436df0
mov dword [esp + 0x6488], esi
lea ecx, [esp + 0x10c]
call fcn.0047f4c0
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.0047f4c0
mov byte [esp + 0x6488], 3
mov eax, dword [esp + 0x4c]
mov dword [0x522068], eax
mov dword [0x520e28], 1
nop
cmp byte [0x535500], 0
jne 0x438795
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 0x437906
cmp byte [0x533244], 0
je 0x437d4a
mov eax, dword [esp + 0x50]
cmp ebx, eax
jl 0x437928
cmp edi, dword [esp + 0x54]
jbe 0x437924
mov ecx, edi
sub ecx, eax
push ecx
lea ecx, [esp + 0x50]
call fcn.00436df0
jmp 0x437928
mov dword [esp + 0x50], edi
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x18]
push 4
add eax, edx
push 0x520e5c
mov dword [0x522068], eax
call fcn.004401e0
test eax, eax
je 0x437c31
push 4
push 0x5320d5
push 0x520e5c
call fcn.004c2d1e
add esp, 0xc
test eax, eax
jne 0x437c46
call fcn.00463920
test eax, eax
jne 0x437d11
movzx edx, byte [0x532109]
movzx eax, word [0x532128]
push edx
push 0x53210c
push 2
xor ecx, ecx
push eax
mov word [0x5321ac], cx
call fcn.004405d0
test eax, eax
je 0x4379ac
cmp eax, esi
jle 0x4379a3
mov esi, eax
cmp eax, 1
jg 0x437d1f
movzx ecx, word [0x53212a]
push 0
push 0
push 3
push ecx
call fcn.004405d0
test eax, eax
je 0x4379d2
cmp eax, esi
jle 0x4379c9
mov esi, eax
cmp eax, 1
jg 0x437d1f
movzx edx, word [0x53212a]
mov eax, dword [0x5320c8]
push 0
push edx
push eax
call fcn.00463070
movzx ecx, word [0x53212a]
mov edx, dword [0x5320c8]
push 0x53210e
push ecx
push edx
call fcn.00485b20
movzx eax, word [0x53212c]
push 0
push 0
push 0
push eax
call fcn.004405d0
test eax, eax
je 0x437a26
cmp eax, esi
jle 0x437a1d
mov esi, eax
cmp eax, 1
jg 0x437d1f
movzx eax, word [0x53212a]
mov edx, dword [0x5331ac]
push 0x3000
lea ecx, [esp + 0x3478]
push ecx
push edx
push eax
mov eax, dword [0x5320c8]
call fcn.00436ce0
test al, al
je 0x437a78
push 0x800
push 0x5321ac
lea ecx, [esp + 0x347c]
push ecx
call fcn.004867f0
push 0x800
push 0
push 0x5321ac
call fcn.00460120
movzx eax, word [0x532110]
movzx ecx, word [0x532112]
lea edx, [esp + 0xa4]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
mov edx, dword [0x522068]
add edx, 0x28
push edx
lea eax, [esp + 0xa8]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
mov ecx, dword [0x522068]
xor eax, eax
mov dword [ecx + 0x30], eax
add ecx, 0x30
mov dword [ecx + 4], eax
mov ecx, dword [0x522068]
add ecx, 0x38
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [0x522068]
lea ecx, [eax + 0x38]
push ecx
mov ecx, dword [0x5320c8]
lea edx, [eax + 0x30]
add eax, 0x28
push edx
push eax
movzx eax, word [0x53212a]
call fcn.00436bf0
movzx eax, word [0x53212a]
mov ecx, dword [0x5320c8]
call fcn.00436d90
mov bl, al
test bl, bl
je 0x437b25
push 0x5321ac
push 0x605
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 0xc
lea ecx, [esp + 0x16c]
call fcn.00402730
mov byte [esp + 0x6488], 4
push 0x2300
lea eax, [esp + 0x170]
push 0
push eax
call fcn.004c16b0
add esp, 0xc
push 0x800
push 0x5321ac
lea ecx, [esp + 0x194]
push ecx
call fcn.0047ef70
mov edx, dword [0x522068]
add edx, 0x28
push edx
lea ecx, [esp + 0x11a0]
call fcn.004820b0
cmp dword [0x53444c], 1
mov eax, dword [0x532120]
mov ecx, dword [0x532124]
mov dword [esp + 0x11bc], eax
mov dword [esp + 0x11c0], ecx
mov eax, 5
je 0x437bbb
cmp dword [0x54babc], 0
jne 0x437bbb
cmp byte [0x54fd0c], 0
jne 0x437bbb
mov eax, VariantClear
test bl, bl
jne 0x437c02
push eax
push 0
lea edx, [esp + 0x174]
push edx
mov ecx, 0x545938
call fcn.00421350
test eax, eax
je 0x437c02
call fcn.004368c0
test eax, eax
je 0x437bfe
push 0x5321ac
lea ecx, [esp + 0x110]
call fcn.0047f330
inc dword [esp + 0x34]
inc edi
add dword [esp + 0x18], 0x48
jmp 0x437c02
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 0x4378f0
push eax
call fcn.004c1404
add esp, 4
jmp 0x4378f0
mov dword [esp + 0x10], 0x33
mov dword [esp + 0x14], 1
jmp 0x437d4e
mov edx, dword [0x532150]
mov eax, edx
xor eax, dword [esp + 0x24]
xor ecx, ecx
and eax, 0xffff
or eax, ecx
mov dword [esp + 0x10], esi
je 0x437c9e
cmp edx, 0xffff
jne 0x437c71
cmp dword [0x532154], ecx
je 0x437c9e
push 0x2ae
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 8
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], 1
jmp 0x437d4e
push 4
push 0x5320da
push 0x520e5c
mov byte [esp + 0x2478], 0x50
mov dword [esp + 0x2479], 0x6064b
call fcn.004c2d1e
add esp, 0xc
test eax, eax
je 0x437cff
cmp byte [0x53324c], 0
je 0x437ced
push 4
lea eax, [esp + 0x2470]
push eax
push 0x520e5c
call fcn.004c2d1e
add esp, 0xc
test eax, eax
je 0x437cff
mov dword [esp + 0x3c], 1
mov dword [esp + 0x14], 1
jmp 0x437d4e
mov dword [esp + 0x3c], 0
mov dword [esp + 0x14], 1
jmp 0x437d4e
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
jmp 0x437d4e
push 0x5321ac
push 0x2ab
mov dword [esp + 0x18], esi
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 0xc
mov dword [esp + 0x14], 1
jmp 0x437d4e
mov dword [esp + 0x10], esi
mov ecx, dword [0x5320b8]
mov edx, dword [0x5320bc]
mov eax, dword [0x532078]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x532080]
mov dword [esp + 0x88], edx
mov edx, dword [0x532084]
xor esi, esi
cmp byte [0x533244], 0
mov dword [esp + 0xa0], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
je 0x437de1
push 0x4d7bac
push 0x550d52
mov dword [0x533248], esi
call fcn.00461820
mov ecx, dword [0x532098]
cmp ecx, esi
je 0x437dba
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov dword [0x532098], esi
call fcn.0043fe60
cmp byte [0x54bc11], 0
push 0x550d52
sete al
lea eax, [eax*4 + 0x54]
push eax
call fcn.004a03e0
cmp ebx, esi
mov dword [esp + 0x18], esi
jle 0x43871e
mov eax, dword [esp + 0x40]
shl eax, 6
mov dword [esp + 0x9c], eax
jmp 0x437e00
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 [0x522068], ecx
lea ecx, [esp + 0x10c]
call fcn.0047f6b0
cmp byte [0x533244], 0
mov dword [esp + 0x90], eax
je 0x437ea4
mov edx, dword [0x522068]
mov eax, dword [edx + 0x20]
cmp eax, dword [0x533248]
je 0x437ea4
movzx ecx, word [0x532140]
cmp eax, ecx
jne 0x437e6a
push 0x4d7b60
push 0x550d52
call fcn.00461820
jmp 0x437e75
push eax
push 0x550d52
call fcn.00436f90
mov edx, dword [0x522068]
mov ecx, dword [0x532098]
mov eax, dword [edx + 0x20]
mov dword [0x533248], eax
test ecx, ecx
je 0x437e95
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [0x532098], 0
call fcn.0043fe60
mov eax, dword [0x522068]
mov esi, dword [eax]
add esi, dword [0x5320c0]
mov edi, dword [eax + 4]
adc edi, dword [0x5320c4]
push 0
push 0x2000
push edi
push esi
mov dword [esp + 0xa4], esi
call fcn.004c3b80
mov ebx, eax
mov eax, esi
sub eax, ebx
mov esi, edi
sbb esi, edx
test edi, edi
jg 0x437f9c
jl 0x437ef1
cmp dword [esp + 0x94], 0
jae 0x437f9c
push 0x2ae
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 8
cmp dword [esp + 0x38], 0
mov dword [esp + 0x10], 2
jne 0x437f8f
mov eax, dword [0x5320c0]
mov ecx, dword [0x5320c4]
mov edx, eax
or edx, ecx
je 0x437f8f
mov dword [esp + 0x20], ecx
xor ecx, ecx
push ecx
mov dword [esp + 0x20], eax
mov eax, dword [0x522068]
mov dword [0x5320c0], ecx
mov dword [0x5320c4], ecx
mov edi, dword [eax + 4]
mov esi, dword [eax]
push 0x2000
push edi
push esi
mov dword [esp + 0xa4], esi
call fcn.004c3b80
mov ebx, eax
mov eax, esi
sub eax, ebx
mov esi, edi
sbb esi, edx
test edi, edi
jg 0x437f9c
jl 0x437f77
cmp dword [esp + 0x94], 0
jae 0x437f9c
push 0x2ae
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 8
mov dword [esp + 0x10], 3
jmp case.0x438502.78
xor edi, edi
cmp eax, dword [0x5320b8]
jne 0x437fdd
cmp esi, dword [0x5320bc]
jne 0x437fdd
cmp byte [0x533244], 0
jne 0x437fdd
mov eax, dword [0x532078]
mov ecx, dword [0x532074]
sub eax, ebx
sub eax, ecx
cdq
add dword [0x532080], eax
adc dword [0x532084], edx
add ebx, ecx
mov dword [0x532078], ebx
jmp 0x43805a
mov ecx, dword [0x532098]
mov edx, dword [ecx]
push edi
push esi
push eax
mov eax, dword [edx + 8]
call eax
mov ecx, dword [0x532098]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [0x532074]
push 0x2000
push ecx
mov dword [0x5320b8], eax
mov dword [0x5320bc], edx
call fcn.00440070
cdq
mov ecx, edx
cmp ecx, edi
mov esi, eax
mov dword [0x532080], esi
mov dword [0x532084], ecx
jg 0x438039
jl 0x437f77
cmp esi, edi
jbe 0x437f77
mov edx, dword [0x532074]
lea eax, [ebx + edx]
mov dword [0x532078], eax
mov eax, ebx
cdq
sub esi, eax
sbb ecx, edx
mov dword [0x532080], esi
mov dword [0x532084], ecx
push 4
push 0x520e5c
call fcn.004401e0
test eax, eax
je 0x437f77
push 4
push 0x5320d0
push 0x520e5c
call fcn.004c2d1e
add esp, 0xc
test eax, eax
je 0x43814e
push 0x2ae
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
mov eax, dword [0x5320c0]
mov ecx, dword [0x5320c4]
add esp, 8
mov dword [esp + 0x10], 2
mov edx, eax
cmp dword [esp + 0x38], edi
jne 0x4380c3
or edx, ecx
jne 0x4380e3
jmp 0x4380cb
or edx, ecx
jne case.0x438502.78
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov ebx, edx
or ebx, esi
je case.0x438502.78
mov ebx, eax
or ebx, ecx
je 0x4380f9
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [0x5320c0], edi
mov dword [0x5320c4], edi
jmp 0x438105
mov dword [0x5320c0], edx
mov dword [0x5320c4], esi
mov eax, dword [0x522068]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
call fcn.00440420
cmp eax, edi
jne 0x437f77
push 4
push 0x520e5c
call fcn.004401e0
test eax, eax
je 0x437f77
push 4
push 0x5320d0
push 0x520e5c
call fcn.004c2d1e
add esp, 0xc
test eax, eax
jne 0x437f77
call fcn.00463200
mov esi, eax
cmp esi, edi
je 0x43817a
push 0x2ae
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 8
mov dword [esp + 0x10], esi
jmp case.0x438502.78
movzx ecx, word [0x532100]
push edi
push 0x5320e2
push 2
xor eax, eax
push ecx
mov word [0x5321ac], ax
call fcn.004405d0
cmp eax, edi
je 0x4381cc
cmp eax, dword [esp + 0x10]
jle 0x4381a5
mov dword [esp + 0x10], eax
cmp eax, 1
jle 0x4381cc
push 0x5321ac
push 0x2ab
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 0xc
jmp case.0x438502.78
mov eax, dword [0x5320c8]
cmp eax, edi
je 0x4381e4
push eax
call fcn.004c1404
add esp, 4
mov dword [0x5320c8], edi
movzx edx, word [0x532102]
push edi
push edi
push 3
push edx
call fcn.004405d0
cmp eax, edi
je 0x438208
cmp eax, dword [esp + 0x10]
jle 0x438203
mov dword [esp + 0x10], eax
cmp eax, 1
jg 0x4381aa
movzx eax, word [0x532102]
mov ecx, dword [0x5320c8]
push 1
push eax
push ecx
call fcn.00463070
mov eax, dword [0x5331ac]
movzx ecx, word [0x532102]
push 0x3000
lea edx, [esp + 0x3478]
push edx
push eax
mov eax, dword [0x5320c8]
push ecx
call fcn.00436ce0
test al, al
je 0x43826e
push 0x800
push 0x5321ac
lea edx, [esp + 0x347c]
push edx
call fcn.004867f0
push 0x800
push edi
push 0x5321ac
call fcn.00460120
mov eax, dword [0x522068]
mov ecx, dword [eax + 0x28]
mov dword [0x5331b0], ecx
mov edx, dword [eax + 0x2c]
mov dword [0x5331b4], edx
mov ecx, dword [eax + 0x30]
mov dword [0x5331b8], ecx
mov edx, dword [eax + 0x34]
mov dword [0x5331bc], edx
mov ecx, dword [eax + 0x38]
mov dword [0x5331c0], ecx
mov edx, dword [eax + 0x3c]
lea eax, [esp + 0x64]
push eax
movzx eax, word [0x532102]
lea ecx, [esp + 0x60]
mov dword [0x5331c4], edx
push ecx
mov ecx, dword [0x5320c8]
lea edx, [esp + 0x74]
push edx
call fcn.00436bf0
test al, al
je 0x438308
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x5c]
mov dword [0x5331b0], eax
mov eax, dword [esp + 0x60]
mov dword [0x5331b4], ecx
mov ecx, dword [esp + 0x64]
mov dword [0x5331b8], edx
mov edx, dword [esp + 0x68]
mov dword [0x5331bc], eax
mov dword [0x5331c0], ecx
mov dword [0x5331c4], edx
movzx eax, word [0x532102]
mov ecx, dword [0x5320c8]
push 0x5320e4
push eax
push ecx
call fcn.00485b20
mov eax, dword [esp + 0x90]
cmp eax, edi
je 0x438341
cmp word [eax], di
je 0x438341
push 0x800
push eax
push 0x5321ac
call fcn.0047ef70
push 0x5321ac
call fcn.0045fe40
cmp word [eax], 0x5c
sete bl
test bl, bl
je 0x43835b
xor edx, edx
mov word [eax], dx
cmp word [0x5321ac], di
je 0x438396
cmp word [0x5321ae], di
je 0x438396
mov eax, 0x5321b0
cmp word [0x5321b0], di
je 0x438396
jmp 0x438380
cmp word [eax], 0x3a
jne 0x43838e
mov ecx, 0x5f
mov word [eax], cx
add eax, 2
cmp word [eax], di
jne 0x438380
push 0x5321ac
push 0x5321ac
call fcn.00460390
push 0x800
push 0x5321ac
push edi
call fcn.0040a830
mov eax, dword [0x522068]
test byte [eax + 0x24], 0x10
je 0x4383d6
mov edx, dword [eax + 0x10]
or edx, dword [eax + 0x14]
jne 0x4383d6
mov eax, dword [eax + 0x1c]
cmp eax, edi
je 0x4383d4
cmp eax, 0xb
jne 0x4383d6
mov bl, 1
cmp word [0x54fd32], 0x49
movzx edx, byte [0x54bc11]
sete al
push edi
movzx ecx, al
push ecx
push edx
push 0x5321ac
push edi
call fcn.0040a420
test al, al
je 0x43871e
movzx eax, word [0x54fd32]
push eax
call fcn.00486ab0
cmp eax, 0x49
jne 0x438429
push 0x5321ac
push 0x550d52
push 0x54fd34
push edi
push edi
call fcn.004419b0
cmp byte [0x54bc11], 0
jne case.0x438502.89
xor esi, esi
test bl, bl
jne 0x43854b
push 0x5321ac
call fcn.00440b40
cmp eax, 0xffffffff
je 0x438531
cmp eax, edi
je 0x438484
cmp eax, 1
jne case.0x438502.89
mov eax, dword [0x54ba68]
cmp eax, 2
je case.0x438502.78
cmp byte [0x54ba8c], 0
jne 0x438480
cmp byte [0x54ba8b], 0
je 0x438492
cmp esi, edi
jmp 0x43848c
mov eax, dword [0x54ba68]
cmp eax, 2
je case.0x438502.78
cmp eax, edi
je case.0x438502.66
cmp eax, 3
jne case.0x438502.89
xor eax, eax
movzx ecx, word [eax + 0x5321ac]
mov word [esp + eax + 0x2474], cx
add eax, 2
cmp cx, di
jne 0x4384a1
movzx ecx, word [0x5320e8]
movzx edx, word [0x5320e6]
mov eax, dword [0x520e4c]
push edi
shl ecx, 0x10
add ecx, edx
push ecx
mov ecx, dword [0x520e48]
push eax
push ecx
lea edx, [esp + 0x2484]
push edx
push edi
call fcn.0040b740
cmp al, 0x43
je 0x43871e
movsx eax, al
add eax, 0xffffffbf
cmp eax, 0x38
ja case.0x438502.66
movzx eax, byte [eax + 0x438aa0]
jmp dword [eax*4 + 0x438a8c]
xor eax, eax
jmp 0x438510
movzx ecx, word [esp + eax + 0x2474]
mov word [eax + 0x5321ac], cx
add eax, 2
cmp cx, di
jne 0x438510
mov esi, 1
jmp 0x438440
cmp byte [0x54ba8b], 0
je case.0x438502.89
cmp esi, edi
je case.0x438502.78
jmp case.0x438502.89
cmp byte [0x54ba8b], 0
jne case.0x438502.78
cmp word [0x5321ac], di
je case.0x438502.78
cmp dword [0x54ba90], 1
je case.0x438502.78
mov ecx, dword [0x522068]
mov eax, dword [ecx + 0x1c]
xor esi, esi
cmp eax, edi
je 0x438586
cmp eax, 0xb
jne 0x438589
mov esi, dword [ecx + 0x24]
push 0x5321ac
call fcn.0043ca60
test al, al
jne 0x43861b
cmp byte [0x54bbee], al
push esi
sete cl
movzx edx, cl
push edx
push 0x5321ac
call fcn.0043d090
test eax, eax
je 0x43861b
push 1
push 0x5321ac
call fcn.0043d140
cmp byte [0x54bbee], 0
push esi
sete al
movzx ecx, al
push ecx
push 0x5321ac
call fcn.0043d090
test eax, eax
je 0x43861b
push 0x5321ac
push 0x1f7
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 0xc
push 0x5321ac
mov ecx, 0x51f7e8
call fcn.00433560
mov ecx, 0x51f7e8
call fcn.00433750
jmp case.0x438502.78
push 0x5321ac
lea ecx, [esp + 0xb0]
call fcn.0047f330
mov edx, dword [0x5331b4]
mov eax, dword [0x5331b0]
push edx
push eax
lea ecx, [esp + 0x7c]
call fcn.00436ff0
mov ecx, dword [0x5331c4]
mov edx, dword [0x5331c0]
push ecx
push edx
lea ecx, [esp + 0x7c]
call fcn.00436ff0
mov eax, dword [0x5331bc]
mov ecx, dword [0x5331b8]
push eax
push ecx
lea ecx, [esp + 0x7c]
call fcn.00436ff0
jmp case.0x438502.78
mov dword [0x54ba68], 1
mov edx, dword [0x522068]
test byte [edx + 0x40], 1
je 0x4386e5
call fcn.00486380
cmp eax, edi
je 0x4386e5
cmp eax, 9
je 0x4388f5
cmp eax, 1
jne 0x4386cc
cmp dword [0x520e08], edi
jne 0x4386c6
push 0x5321ac
push 0x1fb
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 0xc
inc dword [esp + 0x30]
jmp case.0x438502.78
cmp eax, dword [esp + 0x10]
jle 0x4386d6
mov dword [esp + 0x10], eax
push 0x5321ac
push 0x1fb
jmp 0x4381b4
mov dword [0x53217c], edi
call fcn.00437170
cmp eax, edi
je case.0x438502.78
cmp eax, dword [esp + 0x10]
jle 0x4386fe
mov dword [esp + 0x10], eax
cmp dword [0x53217c], 1
jg 0x438903
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
jl 0x437e00
mov edx, dword [esp + 0x88]
mov ecx, dword [0x532098]
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 [0x532098]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
mov ecx, dword [0x532074]
push 0x2000
push ecx
mov dword [0x5320b8], eax
mov dword [0x5320bc], edx
call fcn.00440070
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 [0x532078], edx
mov dword [0x532080], eax
mov dword [0x532084], ecx
je 0x4378d0
push 0x800
lea edx, [esp + 0x2478]
push edx
lea ecx, [esp + 0xb4]
call fcn.0047f5e0
test al, al
je 0x4388a5
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.00482210
lea ecx, [esp + 0x6c]
call fcn.00482210
lea ecx, [esp + 0x5c]
call fcn.00482210
cmp dword [0x54ccdc], 0
je 0x43881b
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x48]
call fcn.004820b0
cmp dword [0x54cce0], 0
je 0x438840
cmp dword [esp + 0x28], 0
jne 0x438832
cmp dword [esp + 0x24], 0
je 0x438840
lea ecx, [esp + 0x24]
push ecx
lea ecx, [esp + 0x70]
call fcn.004820b0
cmp dword [0x54cce4], 0
je 0x438865
cmp dword [esp + 0x20], 0
jne 0x438857
cmp dword [esp + 0x1c], 0
je 0x438865
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x60]
call fcn.004820b0
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.0043c8b0
push 0x800
lea ecx, [esp + 0x2478]
push ecx
lea ecx, [esp + 0xb4]
add esi, 0x18
call fcn.0047f5e0
test al, al
jne 0x4387c0
cmp byte [0x535500], 0
jne 0x438969
cmp dword [esp + 0x3c], 0
je 0x438969
cmp byte [0x533244], 0
jne 0x438969
push 0x2ae
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
mov edi, dword [esp + 0x18]
add esp, 8
test edi, edi
jne 0x43896d
mov edi, 1
jmp 0x43896d
push edi
call fcn.004ac840
add esp, 4
jmp 0x438795
mov byte [esp + 0x6488], 2
lea ecx, [esp + 0xac]
call fcn.0040bde0
mov byte [esp + 0x6488], 1
mov eax, dword [esp + 0x74]
cmp eax, edi
je 0x438930
push eax
call fcn.004c1404
add esp, 4
mov byte [esp + 0x6488], 0
lea ecx, [esp + 0x10c]
call fcn.0040bde0
mov dword [esp + 0x6488], 0xffffffff
mov eax, dword [esp + 0x4c]
cmp eax, edi
je 0x438960
push eax
call fcn.004c1404
add esp, 4
mov eax, dword [esp + 0x10]
jmp 0x438a68
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
movzx ebx, word [esp + 0x30]
inc esi
cmp esi, ebx
jne 0x4389a6
cmp word [0x54fd32], 0x49
je 0x4389a6
cmp dword [0x5331c8], 0
jne 0x4389a6
push 0x346
call fcn.004750b0
push eax
push 0x550d52
call fcn.004ace90
add esp, 8
test esi, esi
jne 0x4389c1
cmp edi, 1
jg 0x4389c1
xor dx, dx
cmp dx, word [esp + 0x2c]
sbb edi, edi
and edi, 0x46
add edi, 0xb
jmp 0x4389f6
cmp esi, ebx
jne 0x4389d1
cmp edi, 1
jg 0x4389d1
mov edi, 0x52
jmp 0x4389f6
cmp word [esp + 0x2c], 0
jbe 0x4389e5
cmp edi, 1
jg 0x4389e5
mov edi, 0x51
jmp 0x4389f6
cmp word [esp + 0x30], 0
jbe 0x4389f6
test edi, edi
jne 0x4389f6
mov edi, 1
mov byte [esp + 0x6488], 2
mov eax, dword [esp + 0xac]
test eax, eax
je 0x438a12
push eax
call fcn.004c1404
add esp, 4
mov byte [esp + 0x6488], 1
cmp dword [esp + 0x74], 0
je 0x438a2e
mov eax, dword [esp + 0x74]
push eax
call fcn.004c1404
add esp, 4
mov byte [esp + 0x6488], 0
mov eax, dword [esp + 0x10c]
test eax, eax
je 0x438a4a
push eax
call fcn.004c1404
add esp, 4
mov dword [esp + 0x6488], 0xffffffff
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x438a66
push eax
call fcn.004c1404
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.004c0c62
mov esp, ebp
pop ebp
ret