Function at 0x409a30
Capabilities:
Get session user name
Resolve function by parsing pe exports

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4240dd
push eax
mov eax, 0x1344
mov dword fs:[0], esp
call fcn.0041adb0
push esi
mov esi, ecx
lea ecx, [esp + 0x20]
call fcn.004169c0
lea ecx, [esp + 0x180]
mov dword [esp + 0x1350], 0
call fcn.00417350
lea ecx, [esp + 0x578]
mov byte [esp + 0x1350], 1
call fcn.00417f80
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x1350], 2
call fcn.00418d30
lea ecx, [esp + 0x820]
mov byte [esp + 0x1350], 3
call fcn.00419eb0
lea ecx, [esp + 0x428]
mov byte [esp + 0x1350], 4
call fcn.00414f50
mov eax, dword [esi + 4]
mov byte [esp + 0x1350], 5
test eax, eax
jne 0x409b4e
lea ecx, [esp + 0x428]
mov byte [esp + 0x1350], 4
call fcn.00414fb0
lea ecx, [esp + 0x820]
mov byte [esp + 0x1350], 3
call fcn.00413050
lea ecx, [esp + 0x2d4]
mov byte [esp + 0x1350], 2
call fcn.00413050
lea ecx, [esp + 0x578]
mov byte [esp + 0x1350], 1
call fcn.00418020
lea ecx, [esp + 0x180]
mov byte [esp + 0x1350], 0
call fcn.00413050
lea ecx, [esp + 0x20]
mov dword [esp + 0x1350], 0xffffffff
call fcn.00413050
jmp 0x40a823
mov eax, dword [esp + 0x135c]
lea ecx, [esp + 0x974]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x974]
push edx
call fcn.0040a990
add esp, 4
lea eax, [esp + 0x974]
push str.MSIME
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [esi + 0x10c8]
cmp eax, 0xffffffff
jae 0x409bb2
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x184]
mov eax, dword [esi + 0x10c8]
lea ecx, [esp + 0x20]
push eax
call fcn.00417260
mov eax, dword [esi + 0x10cc]
cmp eax, 0xffffffff
jae 0x409bcd
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x24c]
mov eax, dword [esi + 0x10e0]
cmp eax, 2
jae 0x409c02
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x240]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409c02
mov eax, dword [esi + 0x10e0]
lea ecx, [esp + 0x180]
push eax
call fcn.004178d0
mov eax, dword [esi + 0x10b8]
cmp eax, 4
jae 0x409c34
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x214]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409c34
mov eax, dword [esi + 0x10b8]
lea ecx, [esp + 0x20]
push eax
call fcn.00416fc0
mov eax, dword [esi + 0x10b4]
cmp eax, 4
jae 0x409c66
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x210]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409c66
mov eax, dword [esi + 0x10b4]
lea ecx, [esp + 0x20]
push eax
call fcn.00416e90
mov eax, dword [esi + 0x10e8]
cmp eax, 2
jae 0x409c81
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x244]
mov eax, dword [esi + 0x10ec]
cmp eax, 4
jae 0x409cb6
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x230]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409cb6
mov eax, dword [esi + 0x10ec]
lea ecx, [esp + 0x180]
push eax
call fcn.00417ac0
mov ecx, dword [esi + 0x10dc]
cmp ecx, 2
jae 0x409d01
mov eax, dword [0x432ddc]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x238]
mov eax, dword [0x432ddc]
mov edx, dword [esi + 0x10dc]
push edx
push 1
mov ecx, dword [eax]
push eax
call dword [ecx + 0x23c]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409d01
mov eax, dword [esi + 0x10dc]
lea ecx, [esp + 0x180]
push eax
call fcn.004177c0
mov eax, dword [esi + 0x10f8]
cmp eax, 0xffffffff
jae 0x409d36
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x2ac]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409d36
mov eax, dword [esi + 0x10f8]
lea ecx, [esp + 0x180]
push eax
call fcn.00417d70
mov eax, dword [esi + 0x10fc]
cmp eax, 0xffffffff
jae 0x409d6b
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x2b4]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409d6b
mov eax, dword [esi + 0x10fc]
lea ecx, [esp + 0x180]
push eax
call fcn.00417e50
mov eax, dword [esi + 0x10ac]
cmp eax, 2
jae 0x409daa
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x204]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409daa
mov eax, dword [esi + 0x10ac]
sub eax, 0
je 0x409d9f
dec eax
jne 0x409daa
push 1
jmp 0x409da1
push 0
lea ecx, [esp + 0x24]
call fcn.00416bf0
mov eax, dword [esi + 0x10b0]
cmp eax, 5
jae case.default.0x409dc2
cmp eax, 4
ja case.default.0x409dc2
jmp dword [eax*4 + 0x40a83c]
mov eax, dword [0x432ddc]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x208]
mov eax, dword [esi + 8]
test eax, eax
jne case.default.0x409dc2
push 0
jmp 0x409e4e
mov eax, dword [0x432ddc]
push 1
push eax
mov edx, dword [eax]
call dword [edx + 0x208]
mov eax, dword [esi + 8]
test eax, eax
jne case.default.0x409dc2
push 1
jmp 0x409e4e
mov eax, dword [0x432ddc]
push 2
push eax
mov ecx, dword [eax]
call dword [ecx + 0x208]
mov eax, dword [esi + 8]
test eax, eax
jne case.default.0x409dc2
push 2
jmp 0x409e4e
mov eax, dword [0x432ddc]
push 3
push eax
mov edx, dword [eax]
call dword [edx + 0x208]
mov eax, dword [esi + 8]
test eax, eax
jne case.default.0x409dc2
push 3
jmp 0x409e4e
mov eax, dword [0x432ddc]
push 4
push eax
mov ecx, dword [eax]
call dword [ecx + 0x208]
mov eax, dword [esi + 8]
test eax, eax
jne case.default.0x409dc2
push 4
lea ecx, [esp + 0x24]
call fcn.00416d30
mov eax, dword [esi + 0x10bc]
cmp eax, 3
jae 0x409ec5
sub eax, 0
je 0x409ea3
dec eax
je 0x409e88
dec eax
jne 0x409ec5
mov eax, dword [0x432ddc]
push 2
push eax
mov edx, dword [eax]
call dword [edx + 0x188]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409ec5
push 2
jmp 0x409ebc
mov eax, dword [0x432ddc]
push 1
push eax
mov ecx, dword [eax]
call dword [ecx + 0x188]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409ec5
push 1
jmp 0x409ebc
mov eax, dword [0x432ddc]
push 0
push eax
mov edx, dword [eax]
call dword [edx + 0x188]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409ec5
push 0
lea ecx, [esp + 0x24]
call fcn.004170f0
mov eax, dword [esi + 0x10d0]
cmp eax, 0xffffffff
jae 0x409ee0
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x1e8]
mov eax, dword [esi + 0x10d4]
cmp eax, 4
jae 0x409f15
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x22c]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409f15
mov eax, dword [esi + 0x10d4]
lea ecx, [esp + 0x180]
push eax
call fcn.00417690
mov eax, dword [esi + 0x10d8]
cmp eax, 0xffffffff
jae 0x409f30
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x254]
mov eax, dword [esi + 0x10f4]
cmp eax, 2
jae 0x409f7a
test eax, eax
mov eax, dword [0x432ddc]
je 0x409f5a
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x250]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409f7a
push 1
jmp 0x409f6e
mov edx, dword [eax]
push 1
push eax
call dword [edx + 0x250]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409f7a
push 0
lea ecx, [esp + 0x184]
call fcn.00417ca0
mov eax, dword [esi + 0x1100]
cmp eax, 2
jae 0x409f95
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x228]
mov eax, dword [esi + 0x1104]
cmp eax, 2
jae 0x409fb0
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x224]
mov eax, dword [esi + 0x1108]
cmp eax, 2
jae 0x409fe5
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x1c0]
mov eax, dword [esi + 8]
test eax, eax
jne 0x409fe5
mov eax, dword [esi + 0x1108]
lea ecx, [esp + 0x2d4]
push eax
call fcn.00419100
mov eax, dword [esi + 0x110c]
cmp eax, 2
jae 0x40a01a
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x27c]
mov eax, dword [esi + 8]
test eax, eax
jne 0x40a01a
mov eax, dword [esi + 0x110c]
lea ecx, [esp + 0x2d4]
push eax
call fcn.004191c0
mov al, byte [esi + 0x1114]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebp
lea ebp, [esi + 0x1114]
push edi
test al, al
je 0x40a191
cmp dword [esi + 0x1110], 0xffffffff
jae 0x40a191
mov ecx, dword [esi + 0x2114]
lea edx, [esp + 0x10]
push ecx
push ebp
lea eax, [esp + 0xb8c]
push edx
push eax
call fcn.00409900
mov edx, dword [esp + 0x20]
mov eax, dword [0x432ddc]
add esp, 0x10
mov ecx, dword [eax]
push edx
lea edx, [esp + 0xb88]
push edx
mov edx, dword [esi + 0x1110]
push edx
push eax
call dword [ecx + 0x268]
mov edi, ebp
mov al, byte [edi]
test al, al
je 0x40a0a5
cmp al, 0x31
jne 0x40a098
cmp byte [edi + 1], 0x2c
jne 0x40a098
mov byte [edi], 0x33
push edi
call ebx
lea edi, [edi + eax + 1]
mov al, byte [edi]
test al, al
jne 0x40a08b
mov eax, dword [esi + 8]
test eax, eax
jne 0x40a191
mov eax, dword [esi + 0x2114]
lea ecx, [esp + 0x2e0]
push eax
push ebp
call fcn.004195f0
mov ecx, dword [esi + 0x1110]
and ecx, 1
push ecx
lea ecx, [esp + 0x2e4]
call fcn.00419290
mov ecx, dword [esi + 0x1110]
shr ecx, 0x10
mov eax, ecx
and eax, 0x3000
cmp eax, 0x2000
jg 0x40a12a
je 0x40a123
test eax, eax
je 0x40a11f
cmp eax, 0x1000
je 0x40a131
mov edi, dword [esp + 0x10]
mov eax, ecx
and eax, 0x300
cmp eax, 0x200
jg 0x40a143
je 0x40a13c
test eax, eax
je 0x40a138
cmp eax, 0x100
je 0x40a14a
jmp 0x40a151
xor edi, edi
jmp 0x40a102
mov edi, 2
jmp 0x40a102
cmp eax, 0x3000
jne 0x40a0fe
mov edi, 3
jmp 0x40a102
xor edx, edx
jmp 0x40a155
mov edx, 2
jmp 0x40a155
cmp eax, 0x300
jne 0x40a151
mov edx, 3
jmp 0x40a155
mov edx, dword [esp + 0x10]
and ecx, 0x30
cmp ecx, 0x30
ja case.0x40a165.3
xor eax, eax
mov al, byte [ecx + 0x40a860]
jmp dword [eax*4 + 0x40a850]
mov eax, 3
jmp 0x40a182
mov eax, 2
jmp 0x40a182
xor eax, eax
jmp 0x40a182
mov eax, dword [esp + 0x14]
push eax
push edx
push edi
lea ecx, [esp + 0x2ec]
call fcn.004193f0
mov eax, dword [esi + 0x10f0]
or edi, 0xffffffff
cmp eax, edi
jae 0x40a1c8
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x1c4]
mov eax, dword [esi + 8]
test eax, eax
jne 0x40a1c8
mov eax, dword [esi + 0x10f0]
lea ecx, [esp + 0x18c]
push eax
call fcn.00417bd0
mov eax, dword [esi + 0x10e4]
cmp eax, edi
jae 0x40a1fc
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x1c8]
mov eax, dword [esi + 8]
test eax, eax
jne 0x40a1fc
mov eax, dword [esi + 0x10e4]
lea ecx, [esp + 0x18c]
push eax
call fcn.004179e0
mov eax, dword [esi + 0x2228]
cmp eax, edi
jae 0x40a230
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x1f4]
mov eax, dword [esi + 8]
test eax, eax
jne 0x40a230
mov eax, dword [esi + 0x2228]
lea ecx, [esp + 0x82c]
push eax
call fcn.00419fe0
mov eax, dword [esi + 0x10c4]
cmp eax, edi
jae 0x40a24a
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x264]
mov eax, dword [esi + 0x2450]
test eax, eax
je 0x40a2a4
lea ecx, [esp + 0x6dc]
call fcn.00411f30
mov eax, dword [0x432ddc]
push str.MS_IME2000
push eax
mov byte [esp + 0x1364], 6
mov ecx, dword [eax]
call dword [ecx + 0x1d8]
lea edx, [esi + 0x22ac]
push 5
push edx
lea ecx, [esp + 0x6e4]
call fcn.00412300
lea ecx, [esp + 0x6dc]
mov byte [esp + 0x135c], 5
call fcn.00411fb0
mov eax, dword [esi + 0x2118]
test eax, eax
je 0x40a302
lea eax, [esp + 0x6dc]
lea ecx, [esp + 0x434]
push eax
call fcn.00416680
lea ecx, [esp + 0x6dc]
push ecx
call fcn.0040a990
add esp, 4
lea edx, [esi + 0x211c]
lea eax, [esp + 0x6dc]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [esi + 8]
test eax, eax
jne 0x40a302
lea ecx, [esp + 0x6dc]
push ecx
lea ecx, [esp + 0x438]
call fcn.00415910
mov eax, dword [esi + 0x361c]
cmp eax, 2
jae 0x40a31e
mov ecx, dword [esi + 8]
test ecx, ecx
jne 0x40a31e
push eax
lea ecx, [esp + 0x30]
call fcn.00414630
mov eax, dword [esi + 0x2224]
cmp eax, edi
jae 0x40a352
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x19c]
mov eax, dword [esi + 8]
test eax, eax
jne 0x40a352
mov eax, dword [esi + 0x2224]
lea ecx, [esp + 0x434]
push eax
call fcn.00415a50
mov eax, dword [esi + 0x2220]
cmp eax, edi
jae 0x40a399
mov ecx, dword [0x432ddc]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x18c]
mov eax, dword [esi + 0x2220]
lea ecx, [esp + 0x434]
push eax
call fcn.00415b20
mov eax, dword [esi + 8]
test eax, eax
jne 0x40a399
mov ecx, dword [esi + 0x2220]
push ecx
lea ecx, [esp + 0x438]
call fcn.00415b20
lea edx, [esp + 0x28]
lea eax, [esp + 0xa84]
push edx
push eax
mov dword [esp + 0x30], 0x100
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
mov edx, dword [esp + 0x1364]
lea ecx, [esp + 0xa84]
push ecx
push str.IMEUserName
push str.SoftwareMicrosoftIMEJP8.1MSIME
push edx
call fcn.0040a930
push 4
call fcn.0040b9e0
mov eax, dword [esi + 8]
add esp, 0x14
cmp eax, 1
jne 0x40a7ac
mov eax, dword [esi + 0x1c]
cmp eax, edi
jae 0x40a3fa
push eax
lea ecx, [esp + 0x30]
call fcn.00417260
mov eax, dword [esi + 0x28]
cmp eax, 2
jae 0x40a40f
push eax
lea ecx, [esp + 0x190]
call fcn.004178d0
mov eax, dword [esi + 0x14]
cmp eax, 4
jae 0x40a421
push eax
lea ecx, [esp + 0x30]
call fcn.00416fc0
mov eax, dword [esi + 0x10]
cmp eax, 4
jae 0x40a433
push eax
lea ecx, [esp + 0x30]
call fcn.00416e90
mov eax, dword [esi + 0x30]
cmp eax, 4
jae 0x40a448
push eax
lea ecx, [esp + 0x190]
call fcn.00417ac0
mov eax, dword [esi + 0x24]
cmp eax, 2
jae 0x40a45d
push eax
lea ecx, [esp + 0x190]
call fcn.004177c0
mov eax, dword [esi + 0x3c]
cmp eax, edi
jae 0x40a471
push eax
lea ecx, [esp + 0x190]
call fcn.00417d70
mov eax, dword [esi + 0x40]
cmp eax, edi
jae 0x40a485
push eax
lea ecx, [esp + 0x190]
call fcn.00417e50
mov eax, dword [esi + 0xc]
cmp eax, 5
jae case.default.0x40a492
cmp eax, 4
ja case.default.0x40a492
jmp dword [eax*4 + 0x40a894]
push 0
jmp 0x40a4ab
push 1
jmp 0x40a4ab
push 2
jmp 0x40a4ab
push 3
jmp 0x40a4ab
push 4
lea ecx, [esp + 0x30]
call fcn.00416d30
mov eax, dword [esi + 0x18]
cmp eax, 3
jae 0x40a4da
sub eax, 0
je 0x40a4cf
dec eax
je 0x40a4cb
dec eax
jne 0x40a4da
push 2
jmp 0x40a4d1
push 1
jmp 0x40a4d1
push 0
lea ecx, [esp + 0x30]
call fcn.004170f0
mov eax, dword [esi + 0x20]
cmp eax, 4
jae 0x40a4ef
push eax
lea ecx, [esp + 0x190]
call fcn.00417690
mov eax, dword [esi + 0x38]
cmp eax, 2
jae 0x40a50d
test eax, eax
je 0x40a4ff
push 0
jmp 0x40a501
push 1
lea ecx, [esp + 0x190]
call fcn.00417ca0
mov eax, dword [esi + 0x84]
cmp eax, 3
jae 0x40a525
push eax
lea ecx, [esp + 0x2e4]
call fcn.00419100
mov eax, dword [esi + 0x88]
cmp eax, 2
jae 0x40a53d
push eax
lea ecx, [esp + 0x2e4]
call fcn.004191c0
mov eax, dword [esi + 0x8c]
cmp eax, edi
jae 0x40a557
and eax, 1
lea ecx, [esp + 0x2e0]
push eax
call fcn.00419290
mov eax, dword [esi + 0x1090]
test eax, eax
jbe 0x40a5bb
cmp eax, edi
jae 0x40a5bb
lea ebp, [esi + 0x90]
push eax
lea eax, [esp + 0x14]
push ebp
lea ecx, [esp + 0xb8c]
push eax
push ecx
call fcn.00409900
mov edi, ebp
add esp, 0x10
mov al, byte [edi]
test al, al
je 0x40a5a4
cmp al, 0x31
jne 0x40a597
cmp byte [edi + 1], 0x2c
jne 0x40a597
mov byte [edi], 0x33
push edi
call ebx
lea edi, [edi + eax + 1]
mov al, byte [edi]
test al, al
jne 0x40a58a
mov edx, dword [esi + 0x1090]
lea ecx, [esp + 0x2e0]
push edx
push ebp
call fcn.004195f0
or edi, 0xffffffff
cmp dword [esi + 0x1094], edi
jne 0x40a5cd
mov dword [esi + 0x1094], 3
cmp dword [esi + 0x1098], edi
jne 0x40a5df
mov dword [esi + 0x1098], 3
cmp dword [esi + 0x109c], edi
jne 0x40a5f1
mov dword [esi + 0x109c], 0
mov eax, dword [esi + 0x109c]
mov ecx, dword [esi + 0x1098]
mov edx, dword [esi + 0x1094]
push eax
push ecx
push edx
lea ecx, [esp + 0x2ec]
call fcn.004193f0
mov eax, dword [esi + 0x34]
cmp eax, edi
jae 0x40a626
push eax
lea ecx, [esp + 0x190]
call fcn.00417bd0
mov eax, dword [esi + 0x2c]
cmp eax, edi
jae 0x40a63a
push eax
lea ecx, [esp + 0x190]
call fcn.004179e0
mov eax, dword [esi + 0x10a8]
cmp eax, edi
jae 0x40a651
push eax
lea ecx, [esp + 0x830]
call fcn.00419fe0
mov eax, dword [esi + 0x10a4]
cmp eax, edi
jae 0x40a668
push eax
lea ecx, [esp + 0x438]
call fcn.00415a50
mov eax, dword [esi + 0x10a0]
cmp eax, edi
jae 0x40a67f
push eax
lea ecx, [esp + 0x438]
call fcn.00415b20
cmp dword [esi + 0x44], edi
jae 0x40a694
lea eax, [esi + 0x48]
lea ecx, [esp + 0x584]
push eax
call fcn.00418450
cmp dword [esi + 0x68], edi
jb 0x40a6b1
cmp dword [esi + 0x64], edi
jb 0x40a6b1
cmp dword [esi + 0x60], edi
jb 0x40a6b1
cmp dword [esi + 0x5c], edi
jb 0x40a6b1
cmp dword [esi + 0x58], edi
jae 0x40a732
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
lea eax, [esp + 0x28]
push edx
lea ecx, [esp + 0x28]
push eax
lea edx, [esp + 0x28]
push ecx
push edx
lea ecx, [esp + 0x598]
call fcn.00418640
cmp dword [esi + 0x68], edi
jne 0x40a6e2
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x68], eax
cmp dword [esi + 0x64], edi
jne 0x40a6ee
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x64], ecx
cmp dword [esi + 0x60], edi
jne 0x40a6fa
mov edx, dword [esp + 0x24]
mov dword [esi + 0x60], edx
cmp dword [esi + 0x5c], edi
jne 0x40a706
mov eax, dword [esp + 0x18]
mov dword [esi + 0x5c], eax
cmp dword [esi + 0x58], edi
jne 0x40a712
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x58], ecx
mov edx, dword [esi + 0x58]
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x60]
push edx
mov edx, dword [esi + 0x64]
push eax
mov eax, dword [esi + 0x68]
push ecx
push edx
push eax
lea ecx, [esp + 0x598]
call fcn.004186c0
mov eax, dword [esi + 0x6c]
cmp eax, edi
jae 0x40a76d
push eax
lea ecx, [esp + 0x588]
call fcn.00418800
mov ecx, dword [esi + 0x80]
mov eax, dword [esi + 0x7c]
mov ebp, dword [esi + 0x78]
mov ebx, dword [esi + 0x74]
mov edx, dword [esi + 0x70]
or ecx, eax
or ecx, ebp
or ecx, ebx
or ecx, edx
push ecx
lea ecx, [esp + 0x588]
call fcn.00418910
mov eax, dword [0x432ddc]
lea ecx, [esi + 0x222c]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x1d8]
mov eax, dword [0x432ddc]
lea ecx, [esi + 0x2454]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x1d0]
mov eax, dword [0x432ddc]
add esi, 0x24d4
push esi
push eax
mov edx, dword [eax]
call dword [edx + 0x1d4]
lea ecx, [esp + 0x434]
mov byte [esp + 0x135c], 4
call fcn.00414fb0
lea ecx, [esp + 0x82c]
mov byte [esp + 0x135c], 3
call fcn.00413050
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x135c], 2
call fcn.00413050
lea ecx, [esp + 0x584]
mov byte [esp + 0x135c], 1
call fcn.00418020
lea ecx, [esp + 0x18c]
mov byte [esp + 0x135c], 0
call fcn.00413050
lea ecx, [esp + 0x2c]
mov dword [esp + 0x135c], edi
call fcn.00413050
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1348]
pop esi
mov dword fs:[0], ecx
add esp, 0x1350
ret 8