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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4c414e
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2f54
call fcn.004b1040
mov eax, dword [0x4da8f0]
xor eax, esp
mov dword [esp + 0x2f50], eax
push ebx
push esi
push edi
mov eax, dword [0x4da8f0]
xor eax, esp
push eax
lea eax, [esp + 0x2f68]
mov dword fs:[0], eax
xor esi, esi
push 0x1200
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x60], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x20], esi
call fcn.004b1137
mov edi, eax
add esp, 4
mov dword [esp + 0x4c], edi
cmp edi, esi
jne 0x4308b8
mov ecx, 0x508304
call fcn.0042cdb0
mov eax, 0x40
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x2f70], esi
lea ecx, [esp + 0x1c4]
call fcn.004710c0
mov byte [esp + 0x2f70], 1
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov byte [esp + 0x2f70], 2
lea ecx, [esp + 0x11c]
call fcn.004710c0
mov byte [esp + 0x2f70], 3
mov dword [0x50abc0], edi
mov dword [0x509980], 1
jmp 0x430920
cmp byte [0x51c858], 0
jne 0x431910
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x30], 1
mov eax, dword [esp + 0x3c]
cmp eax, 0x40
jl 0x43095d
cmp byte [0x51b59c], 0
je 0x430e0a
cmp eax, edi
jl 0x4309b9
mov eax, dword [esp + 0x30]
cmp eax, esi
jbe 0x4309b3
sub eax, edi
add edi, eax
mov dword [esp + 0x50], edi
cmp edi, esi
jbe 0x4309b9
mov eax, esi
shr eax, 2
lea esi, [eax + esi + 0x20]
cmp edi, esi
jbe 0x430984
mov esi, edi
mov edx, dword [esp + 0x4c]
lea ecx, [esi + esi*8]
add ecx, ecx
add ecx, ecx
add ecx, ecx
push ecx
push edx
call fcn.004b128f
add esp, 8
mov dword [esp + 0x4c], eax
test eax, eax
jne 0x4309ad
mov ecx, 0x508304
call fcn.0042cdb0
mov dword [esp + 0x54], esi
jmp 0x4309b9
mov edi, eax
mov dword [esp + 0x50], edi
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x20]
push 4
add eax, ecx
push 0x5099b4
mov dword [0x50abc0], eax
call fcn.00439c30
test eax, eax
je 0x430d23
push 4
push 0x51ac2d
push 0x5099b4
call fcn.004b28e7
add esp, 0xc
test eax, eax
jne 0x430d30
call fcn.0045b190
test eax, eax
jne 0x430ddf
movzx eax, byte [0x51ac61]
movzx ecx, word [0x51ac80]
push eax
push 0x51ac64
push 2
xor edx, edx
push ecx
mov word [0x51ad04], dx
call fcn.0043a110
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x430a45
cmp eax, ebx
jle 0x430a3c
mov ebx, eax
mov dword [esp + 0x14], ebx
cmp eax, 1
jg 0x430de5
movzx edx, word [0x51ac82]
push 0
push 0
push 3
push edx
call fcn.0043a110
test eax, eax
je 0x430a6f
cmp eax, ebx
jle 0x430a66
mov ebx, eax
mov dword [esp + 0x14], ebx
cmp eax, 1
jg 0x430de5
movzx eax, word [0x51ac82]
mov ecx, dword [0x51ac20]
push 0
push eax
push ecx
call fcn.0045a8d0
movzx edx, word [0x51ac82]
mov eax, dword [0x51ac20]
push 0x51ac66
push edx
push eax
call fcn.004774e0
movzx ecx, word [0x51ac84]
push 0
push 0
push 0
push ecx
call fcn.0043a110
test eax, eax
je 0x430ac5
cmp eax, ebx
jle 0x430abc
mov dword [esp + 0x14], eax
cmp eax, 1
jg 0x430de5
mov eax, dword [0x51ac64]
movzx ecx, word [0x51ac82]
shr eax, 0xb
and al, 1
push 0x1800
mov byte [esp + 0x1f], al
mov eax, dword [0x51b504]
lea edx, [esp + 0x1760]
push edx
push eax
mov eax, dword [0x51ac20]
push ecx
call fcn.0042fe00
test al, al
je 0x430b29
push 0x400
push 0x51ad04
lea edx, [esp + 0x1764]
push edx
call fcn.004780e0
push 0x400
push 0
push 0x51ad04
call fcn.00456310
mov byte [esp + 0x1b], 1
movzx ecx, word [0x51ac68]
movzx edx, word [0x51ac6a]
lea eax, [esp + 0xa8]
push eax
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
mov eax, dword [0x50abc0]
add eax, 0x28
push eax
lea ecx, [esp + 0xac]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
mov ecx, dword [0x50abc0]
xor eax, eax
mov dword [ecx + 0x30], eax
add ecx, 0x30
mov dword [ecx + 4], eax
mov ecx, dword [0x50abc0]
add ecx, 0x38
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov eax, dword [0x50abc0]
lea edx, [eax + 0x38]
lea ecx, [eax + 0x30]
push edx
push ecx
mov ecx, dword [0x51ac20]
add eax, 0x28
push eax
movzx eax, word [0x51ac82]
call fcn.0042fd10
movzx eax, word [0x51ac82]
mov ecx, dword [0x51ac20]
call fcn.0042feb0
mov bl, al
test bl, bl
je 0x430bd5
push 0x51ad04
push 0x343
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
add esp, 0xc
lea ecx, [esp + 0x26c]
call fcn.00402410
mov byte [esp + 0x2f70], 4
push 0xce8
lea edx, [esp + 0x270]
push 0
push edx
call fcn.004b14b0
add esp, 0xc
push 0x400
push 0x51ad04
lea eax, [esp + 0x6a4]
push eax
call fcn.004709a0
push 0x400
lea ecx, [esp + 0x2a0]
push ecx
lea edx, [esp + 0x6a4]
push edx
call fcn.00456730
mov eax, dword [0x50abc0]
add eax, 0x28
push eax
lea ecx, [esp + 0xeb4]
call fcn.00473b80
mov eax, dword [esp + 0x274]
mov ecx, dword [0x51ac78]
mov edx, dword [0x51ac7c]
or eax, 0x200
cmp dword [0x51bfa4], 1
mov word [esp + 0x274], ax
mov dword [esp + 0xf4c], ecx
mov dword [esp + 0xf50], edx
mov eax, 5
je 0x430c99
cmp dword [0x528258], 0
jne 0x430c99
cmp byte [0x529c4c], 0
jne 0x430c99
mov eax, VariantClear
test bl, bl
jne 0x430cf4
push eax
push 0
lea ecx, [esp + 0x274]
push ecx
mov ecx, 0x5248e0
call fcn.0041dbf0
test eax, eax
je 0x430cf4
call fcn.0042f980
test eax, eax
je 0x430cf0
mov eax, 0x51ad04
cmp byte [esp + 0x1b], bl
jne 0x430ccf
mov eax, 0x4c79a8
push eax
lea ecx, [esp + 0x1c8]
call fcn.00471170
mov eax, 1
add dword [esp + 0x3c], eax
add dword [esp + 0x30], eax
add dword [esp + 0x20], 0x48
jmp 0x430cf4
inc dword [esp + 0x44]
add dword [esp + 0x34], 1
adc dword [esp + 0x38], 0
mov byte [esp + 0x2f70], 3
mov eax, dword [esp + 0xe9c]
test eax, eax
je 0x430947
push eax
call fcn.004b1201
add esp, 4
jmp 0x430947
mov dword [esp + 0x14], 0x33
jmp 0x430e02
mov edx, dword [0x51aca8]
mov eax, edx
xor eax, dword [esp + 0x34]
xor ecx, ecx
and eax, 0xffff
or eax, ecx
je 0x430d7c
cmp edx, 0xffff
jne 0x430d57
cmp dword [0x51acac], ecx
je 0x430d7c
push 0x2ad
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
add esp, 8
mov dword [esp + 0x14], 3
jmp 0x430e02
push 4
push 0x51ac32
push 0x5099b4
mov byte [esp + 0xf60], 0x50
mov dword [esp + 0xf61], 0x6064b
call fcn.004b28e7
add esp, 0xc
test eax, eax
je 0x430dd5
cmp byte [0x51b5a4], 0
je 0x430dcb
push 4
lea edx, [esp + 0xf58]
push edx
push 0x5099b4
call fcn.004b28e7
add esp, 0xc
test eax, eax
je 0x430dd5
mov dword [esp + 0x58], 1
jmp 0x430e02
mov dword [esp + 0x58], 0
jmp 0x430e02
mov dword [esp + 0x14], eax
jmp 0x430e02
push 0x51ad04
push 0x2ab
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
add esp, 0xc
mov dword [esp + 0x1c], 1
mov eax, dword [0x51ac10]
mov ecx, dword [0x51ac14]
mov edx, dword [0x51abd0]
mov dword [esp + 0x8c], eax
mov eax, dword [0x51abd8]
mov dword [esp + 0x90], ecx
mov ecx, dword [0x51abdc]
xor esi, esi
cmp byte [0x51b59c], 0
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
je 0x430ec4
cmp byte [0x52a8a2], 0
mov dword [0x51b5a0], esi
je 0x430e72
push 0x4c8ff0
push 0x52a8a2
call fcn.00458700
cmp word [0x52aca2], si
je 0x430e8a
push 0x4c7b1c
push 0x52aca2
call fcn.004587a0
mov ecx, dword [0x51abf0]
cmp ecx, esi
je 0x430e9c
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [0x51abf0], esi
call fcn.00439860
cmp byte [0x528352], 0
push 0x52aca2
sete cl
push esi
lea ecx, [ecx*4 + 0x54]
push ecx
call fcn.0048dd20
cmp dword [esp + 0x3c], esi
mov dword [esp + 0x20], esi
jle 0x431897
mov eax, dword [esp + 0x5c]
shl eax, 6
mov dword [esp + 0x30], eax
lea ecx, [ecx]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
add edx, eax
lea eax, [eax + eax*8]
mov dword [esp + 0x48], edx
lea edx, [ecx + eax*8]
lea ecx, [esp + 0x1c4]
mov dword [0x50abc0], edx
call fcn.004713e0
cmp byte [0x51b59c], 0
mov dword [esp + 0x94], eax
je 0x430fd2
mov eax, dword [0x50abc0]
mov eax, dword [eax + 0x20]
cmp eax, dword [0x51b5a0]
je 0x430fd2
movzx ecx, word [0x51ac98]
cmp eax, ecx
jne 0x430f70
cmp byte [0x52a8a2], 0
je 0x430f55
push 0x4c8fec
push 0x52a8a2
call fcn.00458700
cmp word [0x52aca2], 0
je 0x430fa2
push 0x4c7ad0
push 0x52aca2
call fcn.004587a0
jmp 0x430fa2
cmp byte [0x52a8a2], 0
je 0x430f84
push eax
push 0x52a8a2
call fcn.0042fcb0
cmp word [0x52aca2], 0
je 0x430fa2
mov edx, dword [0x50abc0]
mov eax, dword [edx + 0x20]
push eax
push 0x52aca2
call fcn.0042ffb0
mov ecx, dword [0x50abc0]
mov edx, dword [ecx + 0x20]
mov ecx, dword [0x51abf0]
mov dword [0x51b5a0], edx
test ecx, ecx
je 0x430fc3
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
mov dword [0x51abf0], 0
call fcn.00439860
mov eax, dword [0x50abc0]
mov ebx, dword [eax]
add ebx, dword [0x51ac18]
mov esi, dword [eax + 4]
adc esi, dword [0x51ac1c]
push 0
push 0x2000
push esi
push ebx
call fcn.004b2f20
mov edi, eax
mov eax, ebx
sub eax, edi
mov ecx, esi
sbb ecx, edx
mov dword [esp + 0x78], edx
test esi, esi
jg 0x4310b8
jl 0x431016
test ebx, ebx
jae 0x4310b8
push 0x2ad
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
add esp, 8
cmp dword [esp + 0x48], 0
mov dword [esp + 0x14], 2
jne 0x4310ab
mov eax, dword [0x51ac18]
mov ecx, dword [0x51ac1c]
mov edx, eax
or edx, ecx
je 0x4310ab
mov dword [esp + 0x28], ecx
xor ecx, ecx
push ecx
mov dword [esp + 0x28], eax
mov eax, dword [0x50abc0]
mov dword [0x51ac18], ecx
mov dword [0x51ac1c], ecx
mov ebx, dword [eax + 4]
mov esi, dword [eax]
push 0x2000
push ebx
push esi
call fcn.004b2f20
mov edi, eax
mov eax, esi
sub eax, edi
mov ecx, ebx
sbb ecx, edx
mov dword [esp + 0x78], edx
test ebx, ebx
jg 0x4310b8
jl 0x431093
test esi, esi
jae 0x4310b8
push 0x2ad
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
add esp, 8
mov dword [esp + 0x14], 3
jmp case.0x431653.78
cmp eax, dword [0x51ac10]
jne 0x4310f7
cmp ecx, dword [0x51ac14]
jne 0x4310f7
cmp byte [0x51b59c], 0
jne 0x4310f7
mov eax, dword [0x51abd0]
mov ecx, dword [0x51abcc]
sub eax, edi
sub eax, ecx
cdq
add dword [0x51abd8], eax
adc dword [0x51abdc], edx
add edi, ecx
mov dword [0x51abd0], edi
jmp 0x431170
push 0
push ecx
mov ecx, dword [0x51abf0]
push eax
call fcn.00434ff0
mov ecx, dword [0x51abf0]
call fcn.004347e0
mov dword [0x51ac10], eax
mov eax, dword [0x51abcc]
push 0x2000
push eax
mov dword [0x51ac14], edx
call fcn.00439a90
cdq
mov ecx, edx
mov esi, eax
mov dword [0x51abd8], esi
mov dword [0x51abdc], ecx
test ecx, ecx
jg 0x43114f
jl 0x431093
test esi, esi
jbe 0x431093
mov edx, dword [0x51abcc]
lea eax, [edi + edx]
mov dword [0x51abd0], eax
mov eax, edi
cdq
sub esi, eax
sbb ecx, edx
mov dword [0x51abd8], esi
mov dword [0x51abdc], ecx
push 4
push 0x5099b4
call fcn.00439c30
test eax, eax
je 0x431093
push 4
push 0x51ac28
push 0x5099b4
call fcn.004b28e7
add esp, 0xc
test eax, eax
je 0x431267
push 0x2ad
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
mov eax, dword [0x51ac18]
mov ecx, dword [0x51ac1c]
add esp, 8
cmp dword [esp + 0x48], 0
mov edi, 2
mov dword [esp + 0x14], edi
mov edx, eax
jne 0x4311db
or edx, ecx
jne 0x4311fb
jmp 0x4311e3
or edx, ecx
jne case.0x431653.78
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
mov ebx, edx
or ebx, esi
je case.0x431653.78
mov ebx, eax
or ebx, ecx
je 0x431211
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x28], ecx
mov dword [0x51ac18], eax
mov dword [0x51ac1c], eax
jmp 0x43121d
mov dword [0x51ac18], edx
mov dword [0x51ac1c], esi
mov eax, dword [0x50abc0]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
call fcn.00439e90
test eax, eax
jne 0x431093
push 4
push 0x5099b4
call fcn.00439c30
test eax, eax
je 0x431093
push 4
push 0x51ac28
push 0x5099b4
call fcn.004b28e7
add esp, 0xc
test eax, eax
je 0x43126b
jmp 0x431093
mov edi, dword [esp + 0x14]
call fcn.0045aa60
mov esi, eax
test esi, esi
je 0x431297
push 0x2ad
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
add esp, 8
mov dword [esp + 0x14], esi
jmp case.0x431653.78
movzx ecx, word [0x51ac58]
xor eax, eax
push eax
push 0x51ac3a
push 2
push ecx
mov word [0x51ad04], ax
call fcn.0043a110
test eax, eax
je 0x4312e9
cmp eax, edi
jle 0x4312c2
mov edi, eax
mov dword [esp + 0x14], edi
cmp eax, 1
jle 0x4312e9
push 0x51ad04
push 0x2ab
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
add esp, 0xc
jmp case.0x431653.78
mov eax, dword [0x51ac20]
test eax, eax
je 0x431305
push eax
call fcn.004b1201
add esp, 4
mov dword [0x51ac20], 0
movzx edx, word [0x51ac5a]
push 0
push 0
push 3
push edx
call fcn.0043a110
test eax, eax
je 0x431329
cmp eax, edi
jle 0x431324
mov dword [esp + 0x14], eax
cmp eax, 1
jg 0x4312c7
movzx eax, word [0x51ac5a]
mov ecx, dword [0x51ac20]
push 1
push eax
push ecx
call fcn.0045a8d0
mov eax, dword [0x51b504]
movzx ecx, word [0x51ac5a]
push 0x1800
lea edx, [esp + 0x1760]
push edx
push eax
mov eax, dword [0x51ac20]
push ecx
call fcn.0042fe00
test al, al
je 0x431390
push 0x400
push 0x51ad04
lea edx, [esp + 0x1764]
push edx
call fcn.004780e0
push 0x400
push 0
push 0x51ad04
call fcn.00456310
mov eax, dword [0x50abc0]
mov ecx, dword [eax + 0x28]
mov dword [0x51b508], ecx
mov edx, dword [eax + 0x2c]
mov dword [0x51b50c], edx
mov ecx, dword [eax + 0x30]
mov dword [0x51b510], ecx
mov edx, dword [eax + 0x34]
mov dword [0x51b514], edx
mov ecx, dword [eax + 0x38]
mov dword [0x51b518], ecx
mov edx, dword [eax + 0x3c]
lea eax, [esp + 0x6c]
push eax
movzx eax, word [0x51ac5a]
lea ecx, [esp + 0xa4]
mov dword [0x51b51c], edx
push ecx
mov ecx, dword [0x51ac20]
lea edx, [esp + 0xa0]
push edx
call fcn.0042fd10
test al, al
je 0x43143c
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0xa0]
mov dword [0x51b508], eax
mov eax, dword [esp + 0xa4]
mov dword [0x51b50c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [0x51b510], edx
mov edx, dword [esp + 0x70]
mov dword [0x51b514], eax
mov dword [0x51b518], ecx
mov dword [0x51b51c], edx
movzx eax, word [0x51ac5a]
mov ecx, dword [0x51ac20]
push 0x51ac3c
push eax
push ecx
call fcn.004774e0
mov eax, dword [esp + 0x94]
test eax, eax
je 0x431476
cmp word [eax], 0
je 0x431476
push 0x400
push eax
push 0x51ad04
call fcn.004709a0
push 0x51ad04
call fcn.004560f0
cmp word [eax], 0x5c
sete bl
test bl, bl
je 0x431490
xor edx, edx
mov word [eax], dx
cmp word [0x51ad04], 0
je 0x4314ca
cmp word [0x51ad06], 0
je 0x4314ca
cmp word [0x51ad08], 0
mov eax, 0x51ad08
je 0x4314ca
cmp word [eax], 0x3a
jne 0x4314c1
mov ecx, 0x5f
mov word [eax], cx
add eax, 2
cmp word [eax], 0
jne 0x4314b3
push 0x51ad04
push 0x51ad04
call fcn.00456a00
push 0x400
push 0x51ad04
push 0
call fcn.0040a490
mov eax, dword [0x50abc0]
test byte [eax + 0x24], 0x10
je 0x43150b
mov edx, dword [eax + 0x10]
or edx, dword [eax + 0x14]
jne 0x43150b
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x431509
cmp eax, 0xb
jne 0x43150b
mov bl, 1
cmp byte [0x529c72], 0x49
movzx edx, byte [0x528352]
sete al
push 0
movzx ecx, al
push ecx
push edx
push 0x51ad04
push 0
call fcn.0040a070
test al, al
je 0x431897
movsx eax, byte [0x529c72]
push eax
call fcn.004b2511
add esp, 4
cmp eax, 0x49
jne 0x43156b
push 0x51ad04
push 0
push 0x52aca2
push 0x52a8a2
push 0x529c73
push 0
push 0
call fcn.0043b7d0
cmp byte [0x528352], 0
jne case.0x431653.89
xor esi, esi
test bl, bl
jne 0x43169b
push 0x51ad04
call fcn.0043a040
cmp eax, 0xffffffff
je 0x431681
test eax, eax
je 0x4315c6
cmp eax, 1
jne case.0x431653.89
mov eax, dword [0x528208]
cmp eax, 2
je case.0x431653.78
cmp byte [0x528229], 0
jne 0x4315c2
cmp byte [0x528228], 0
je 0x4315d4
test esi, esi
jmp 0x4315ce
mov eax, dword [0x528208]
cmp eax, 2
je case.0x431653.78
test eax, eax
je case.0x431653.66
cmp eax, 3
jne case.0x431653.89
xor eax, eax
jmp 0x4315f0
movzx ecx, word [eax + 0x51ad04]
mov word [esp + eax + 0xf5c], cx
add eax, 2
test cx, cx
jne 0x4315f0
movzx ecx, word [0x51ac40]
movzx edx, word [0x51ac3e]
mov eax, dword [0x5099a4]
push 0
shl ecx, 0x10
add ecx, edx
push ecx
mov ecx, dword [0x5099a0]
push eax
push ecx
lea edx, [esp + 0xf6c]
push edx
push 0
call fcn.0040b2d0
cmp al, 0x43
je 0x431897
movsx eax, al
add eax, 0xffffffbf
cmp eax, 0x38
ja case.0x431653.66
movzx eax, byte [eax + 0x431c74]
jmp dword [eax*4 + 0x431c60]
xor eax, eax
lea esp, [esp]
movzx ecx, word [esp + eax + 0xf5c]
mov word [eax + 0x51ad04], cx
add eax, 2
test cx, cx
jne 0x431660
mov esi, 1
jmp 0x431582
cmp byte [0x528228], 0
je case.0x431653.89
test esi, esi
je case.0x431653.78
jmp case.0x431653.89
cmp byte [0x528228], 0
jne case.0x431653.78
cmp word [0x51ad04], 0
je case.0x431653.78
cmp dword [0x52822c], 1
je case.0x431653.78
mov ecx, dword [0x50abc0]
mov eax, dword [ecx + 0x1c]
xor esi, esi
test eax, eax
je 0x4316d7
cmp eax, 0xb
jne 0x4316da
mov esi, dword [ecx + 0x24]
push 0x51ad04
call fcn.00435ac0
test al, al
jne 0x431772
cmp byte [0x5282f3], al
push esi
sete cl
movzx edx, cl
push edx
push 0x51ad04
push 0
call fcn.00436280
test eax, eax
je 0x431772
push 1
push 0x51ad04
call fcn.00436450
cmp byte [0x5282f3], 0
push esi
sete al
movzx ecx, al
push ecx
push 0x51ad04
push 0
call fcn.00436280
test eax, eax
je 0x431772
push 0x51ad04
push 0x1f7
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
add esp, 0xc
push 0x51ad04
push 0
mov ecx, 0x508304
call fcn.0042cb30
mov ecx, 0x508304
call fcn.0042cce0
jmp case.0x431653.78
push 0x51ad04
lea ecx, [esp + 0x120]
call fcn.00471170
mov edx, dword [0x51b50c]
mov eax, dword [0x51b508]
push edx
push eax
lea ecx, [esp + 0x68]
call fcn.00430010
mov ecx, dword [0x51b51c]
mov edx, dword [0x51b518]
push ecx
push edx
lea ecx, [esp + 0x68]
call fcn.00430010
mov eax, dword [0x51b514]
mov ecx, dword [0x51b510]
push eax
push ecx
lea ecx, [esp + 0x68]
call fcn.00430010
jmp case.0x431653.78
mov dword [0x528208], 1
mov edx, dword [0x50abc0]
test byte [edx + 0x40], 1
je 0x431856
call fcn.00477d20
test eax, eax
je 0x431856
cmp eax, 9
je 0x431a92
cmp eax, 1
jne 0x43183d
cmp dword [0x509960], 0
jne 0x431837
cmp dword [0x51b520], 0
je 0x43181a
push 0
call fcn.0049a620
add esp, 4
inc dword [esp + 0x40]
jmp case.0x431653.78
push 0x51ad04
push 0x1fb
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
add esp, 0xc
inc dword [esp + 0x40]
jmp case.0x431653.78
cmp eax, dword [esp + 0x14]
jle 0x431847
mov dword [esp + 0x14], eax
push 0x51ad04
push 0x1fb
jmp 0x4312d1
mov dword [0x51acd4], 0
call fcn.004301c0
test eax, eax
je case.0x431653.78
mov esi, dword [esp + 0x14]
cmp eax, esi
jle 0x431877
mov esi, eax
mov dword [esp + 0x14], esi
cmp dword [0x51acd4], 1
jg 0x431aa1
mov eax, dword [esp + 0x20]
inc eax
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x20], eax
jl 0x430ee0
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
push 0
push eax
push ecx
mov ecx, dword [0x51abf0]
call fcn.00434ff0
mov ecx, dword [0x51abf0]
call fcn.004347e0
mov dword [0x51ac14], edx
mov edx, dword [0x51abcc]
push 0x2000
push edx
mov dword [0x51ac10], eax
call fcn.00439a90
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x88]
inc dword [esp + 0x5c]
cmp dword [esp + 0x1c], 0
mov dword [0x51abd0], eax
mov dword [0x51abd8], ecx
mov dword [0x51abdc], edx
je 0x430920
push 0x400
lea eax, [esp + 0xf60]
push eax
lea ecx, [esp + 0x124]
call fcn.00471480
test al, al
je 0x431a42
mov esi, dword [esp + 0x60]
add esi, 0x10
jmp 0x431940
mov ecx, dword [esi - 0x10]
mov dword [esp + 0x6c], ecx
mov edx, dword [esi - 0xc]
mov dword [esp + 0x70], edx
mov eax, dword [esi - 8]
mov dword [esp + 0x34], eax
mov ecx, dword [esi - 4]
mov dword [esp + 0x38], ecx
mov edx, dword [esi]
mov dword [esp + 0x24], edx
mov eax, dword [esi + 4]
lea ecx, [esp + 0xf8]
mov dword [esp + 0x28], eax
call fcn.004129c0
lea ecx, [esp + 0xd4]
call fcn.004129c0
lea ecx, [esp + 0xb0]
call fcn.004129c0
cmp dword [0x52881c], 0
je 0x4319a7
lea ecx, [esp + 0x6c]
push ecx
lea ecx, [esp + 0xfc]
call fcn.00473b80
cmp dword [0x528820], 0
je 0x4319cf
cmp dword [esp + 0x38], 0
jne 0x4319be
cmp dword [esp + 0x34], 0
je 0x4319cf
lea edx, [esp + 0x34]
push edx
lea ecx, [esp + 0xd8]
call fcn.00473b80
cmp dword [0x528824], 0
je 0x4319f7
cmp dword [esp + 0x28], 0
jne 0x4319e6
cmp dword [esp + 0x24], 0
je 0x4319f7
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0xb4]
call fcn.00473b80
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0xd8]
push edx
lea eax, [esp + 0x100]
push eax
lea ecx, [esp + 0xf68]
push ecx
push 0
call fcn.004365f0
push 0x400
lea edx, [esp + 0xf60]
push edx
lea ecx, [esp + 0x124]
add esi, 0x18
call fcn.00471480
test al, al
jne 0x431940
cmp byte [0x51c858], 0
jne 0x431b05
cmp dword [esp + 0x58], 0
je 0x431b05
cmp byte [0x51b59c], 0
jne 0x431b05
push 0x2ad
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
mov ebx, dword [esp + 0x1c]
add esp, 8
test ebx, ebx
jne 0x431b09
mov ebx, 1
jmp 0x431b09
push 0
call fcn.0049a620
add esp, 4
jmp 0x431910
mov byte [esp + 0x2f70], 2
lea ecx, [esp + 0x11c]
call fcn.00401bb0
mov byte [esp + 0x2f70], 1
mov eax, dword [esp + 0x60]
test eax, eax
je 0x431ace
push eax
call fcn.004b1201
add esp, 4
mov byte [esp + 0x2f70], 0
lea ecx, [esp + 0x1c4]
call fcn.00401bb0
mov dword [esp + 0x2f70], 0xffffffff
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x431afe
push eax
call fcn.004b1201
add esp, 4
mov eax, esi
jmp 0x431c3b
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x48]
movzx edi, word [esp + 0x40]
inc esi
cmp esi, edi
jne 0x431b41
cmp byte [0x529c72], 0x49
je 0x431b41
cmp dword [0x51b520], 0
jne 0x431b41
push 0x346
call fcn.004671c0
push eax
push 0x52aca2
call fcn.0049ac10
add esp, 8
test esi, esi
jne 0x431b5c
cmp ebx, 1
jg 0x431b5c
xor ax, ax
cmp ax, word [esp + 0x44]
sbb ebx, ebx
and ebx, 0x46
add ebx, 0xb
jmp 0x431b91
cmp esi, edi
jne 0x431b6c
cmp ebx, 1
jg 0x431b6c
mov ebx, 0x52
jmp 0x431b91
cmp word [esp + 0x44], 0
jbe 0x431b80
cmp ebx, 1
jg 0x431b80
mov ebx, 0x51
jmp 0x431b91
cmp word [esp + 0x40], 0
jbe 0x431b91
test ebx, ebx
jne 0x431b91
mov ebx, 1
mov byte [esp + 0x2f70], 6
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x431bad
push eax
call fcn.004b1201
add esp, 4
mov byte [esp + 0x2f70], 2
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x431bc9
push eax
call fcn.004b1201
add esp, 4
mov byte [esp + 0x2f70], 1
cmp dword [esp + 0x60], 0
je 0x431be5
mov ecx, dword [esp + 0x60]
push ecx
call fcn.004b1201
add esp, 4
mov byte [esp + 0x2f70], 8
mov eax, dword [esp + 0x1d4]
test eax, eax
je 0x431c01
push eax
call fcn.004b1201
add esp, 4
mov byte [esp + 0x2f70], 0
mov eax, dword [esp + 0x1c4]
test eax, eax
je 0x431c1d
push eax
call fcn.004b1201
add esp, 4
mov dword [esp + 0x2f70], 0xffffffff
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x431c39
push eax
call fcn.004b1201
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0x2f68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2f50]
xor ecx, esp
call fcn.004b102c
mov esp, ebp
pop ebp
ret