Function at 0x40d070
Capabilities:
Check os version
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x471edf
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x22c
mov eax, dword [esp + 0x23c]
push ebx
push ebp
push esi
xor ebx, ebx
mov esi, ecx
cmp eax, ebx
push edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], ebx
mov ebp, 1
je 0x40d0c8
lea ecx, [esi + 0x1b4]
mov dword [esi + 4], 0x477394
call fcn.00440910
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x244], ebx
push ebx
mov ecx, esi
call fcn.0043ef70
mov dword [esi], fcn.0043f0c0
mov eax, dword [esi + 4]
mov dword [esp + 0x244], ebp
mov ecx, dword [eax + 4]
mov dword [ecx + esi + 4], 0x477270
mov edx, dword [esi + 4]
mov eax, dword [edx + 4]
lea ecx, [eax - 0x1b0]
mov dword [eax + esi], ecx
lea ecx, [esi + 0x1b4]
call fcn.0040ede0
push 0x11c
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x244], 2
je 0x40d12c
push ebp
mov ecx, eax
call fcn.0043ef70
jmp 0x40d12e
xor eax, eax
push 0x148
mov byte [esp + 0x248], 1
mov dword [esi + 0x58], eax
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x244], 3
je 0x40d160
push ebp
mov ecx, eax
call fcn.0042ee60
jmp 0x40d162
xor eax, eax
lea edi, [esi + 0x5c]
push 0x168
mov byte [esp + 0x248], 1
mov dword [edi], eax
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x244], 4
je 0x40d196
push ebp
mov ecx, eax
call fcn.0042f8c0
jmp 0x40d198
xor eax, eax
mov dword [esi + 0x60], eax
mov eax, dword [edi]
cmp eax, ebx
mov byte [esp + 0x244], 1
jne 0x40d1ad
xor eax, eax
jmp 0x40d1b7
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
push ebx
push ebp
push eax
mov ecx, esi
call fcn.0043f100
mov eax, dword [esi + 0x60]
cmp eax, ebx
jne 0x40d1cc
xor eax, eax
jmp 0x40d1d6
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
push ebx
push ebp
push eax
mov ecx, esi
call fcn.0043f100
mov edx, dword [0x4a2ba8]
lea ecx, [esp + 0x34]
add edx, 0x81
push edx
call fcn.004496a0
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 0x476564
lea eax, [esp + 0x138]
push str.confscrn
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x24c], 6
call fcn.00403e60
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x248], 7
call fcn.00434100
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x244], 6
cmp ecx, ebx
je 0x40d258
mov edx, dword [ecx]
call dword [edx + 0x28]
mov ecx, dword [esp + 0x18]
mov ebp, eax
cmp ecx, ebx
je 0x40d25a
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x40d25c
xor ebp, ebp
xor eax, eax
mov ecx, dword [0x4a2ba8]
mov edx, dword [ecx + 0x1a0]
mov ecx, dword [ecx + 0x19c]
sub edx, ebp
sub ecx, eax
shr edx, 1
shr ecx, 1
push edx
push ecx
mov ecx, edi
call fcn.00440420
push 0xc0
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x244], 8
je 0x40d2a5
mov ecx, eax
call fcn.00440910
jmp 0x40d2a7
xor eax, eax
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x244], 6
cmp ecx, ebx
mov dword [esi + 0xc4], eax
je 0x40d308
mov edx, dword [ecx]
push 0x481174
call dword [edx + 0x1c]
mov edi, eax
cmp edi, ebx
je 0x40d308
mov ecx, dword [esi + 0xc4]
push edi
mov eax, dword [ecx]
call dword [eax + 0x98]
mov ecx, dword [esi + 0xc4]
mov edx, dword [edi]
mov ebp, dword [ecx]
mov ecx, edi
call dword [edx + 0x30]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x2c]
mov ecx, dword [esi + 0xc4]
push eax
call dword [ebp + 0xc4]
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
mov eax, dword [esi + 0xc4]
mov ecx, dword [esi + 0x58]
push ebx
push ebx
push eax
call fcn.0043f100
push 0x13c
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x244], 9
je 0x40d341
push 1
mov ecx, eax
call fcn.004499f0
jmp 0x40d343
xor eax, eax
lea edi, [esi + 0x70]
push 0x13c
mov byte [esp + 0x248], 6
mov dword [edi], eax
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x244], 0xa
je 0x40d378
push 1
mov ecx, eax
call fcn.004499f0
jmp 0x40d37a
xor eax, eax
mov ecx, dword [edi]
mov dword [esi + 0x74], eax
push 1
lea eax, [esp + 0x18]
mov edx, dword [ecx]
push str.load
push eax
mov byte [esp + 0x250], 6
call dword [edx + 4]
mov ecx, dword [esi + 0x74]
push 1
lea eax, [esp + 0x18]
push str.save
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ebp, 2
mov eax, dword [edi]
cmp eax, ebx
jne 0x40d3bb
xor eax, eax
jmp 0x40d3c5
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
push 1
push 0xa
push eax
mov ecx, esi
call fcn.0043f100
mov eax, dword [edi]
push esi
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
add edi, 4
dec ebp
jne 0x40d3b1
push 0x13c
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x244], 0xb
je 0x40d411
push 1
mov ecx, eax
call fcn.004499f0
jmp 0x40d413
xor eax, eax
lea edi, [esi + 0x64]
push 0x13c
mov byte [esp + 0x248], 6
mov dword [edi], eax
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x244], 0xc
je 0x40d448
push 1
mov ecx, eax
call fcn.004499f0
jmp 0x40d44a
xor eax, eax
push 0x13c
mov byte [esp + 0x248], 6
mov dword [esi + 0x68], eax
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
cmp eax, ebx
mov byte [esp + 0x244], 0xd
je 0x40d47d
push 1
mov ecx, eax
call fcn.004499f0
jmp 0x40d47f
xor eax, eax
mov ecx, dword [edi]
mov dword [esi + 0x6c], eax
push 1
lea edx, [esp + 0x18]
mov eax, dword [ecx]
push str.exit
push edx
mov byte [esp + 0x250], 6
call dword [eax + 4]
mov ecx, dword [esi + 0x68]
push 1
lea edx, [esp + 0x18]
push str.title
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov ecx, dword [esi + 0x6c]
push 1
lea edx, [esp + 0x18]
push str.close
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov ebp, 3
mov eax, dword [edi]
cmp eax, ebx
jne 0x40d4d4
xor eax, eax
jmp 0x40d4de
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
push 1
push 0xa
push eax
mov ecx, esi
call fcn.0043f100
mov eax, dword [edi]
push esi
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
add edi, 4
dec ebp
jne 0x40d4ca
mov eax, dword [esi + 0x6c]
push 0x40fad0
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d50
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
xor ebp, ebp
lea edi, [esi + 0x78]
push ebp
lea eax, [esp + 0x20]
push str.tab__d
push eax
call ebx
push 0x13c
call fcn.0046335e
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0xe
je 0x40d559
push 1
mov ecx, eax
call fcn.004499f0
jmp 0x40d55b
xor eax, eax
lea ecx, [esp + 0x1c]
push 1
push ecx
lea ecx, [esp + 0x1c]
mov dword [edi], eax
mov edx, dword [eax]
push ecx
mov ecx, eax
mov byte [esp + 0x250], 6
call dword [edx + 4]
mov eax, dword [edi]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [edi]
push ebp
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [edi]
push 0x410770
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [edi]
test eax, eax
je 0x40d5c2
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
push 1
push 0xa
push eax
mov ecx, esi
call fcn.0043f100
inc ebp
add edi, 4
cmp ebp, 3
jl 0x40d524
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x40d67c
mov edx, dword [ecx]
push str.bgm_lev
call dword [edx + 0x1c]
mov edi, eax
test edi, edi
je 0x40d67c
push 0x178
call fcn.0046335e
mov ebp, eax
add esp, 4
mov dword [esp + 0x10], ebp
test ebp, ebp
mov byte [esp + 0x244], 0xf
je 0x40d645
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 0x20]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x1c]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x2c]
push eax
mov ecx, ebp
call fcn.004517e0
jmp 0x40d647
xor eax, eax
lea ecx, [esp + 0x14]
lea ebx, [esi + 0xb4]
push str.bgm_vol
push ecx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [ebx], eax
call fcn.004519c0
mov dword [esi + 0x194], 1
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
jmp 0x40d6be
push 0x178
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x10
je 0x40d6ac
push 1
push 0
push 0
push 0
push 0
mov ecx, eax
call fcn.004517e0
jmp 0x40d6ae
xor eax, eax
lea ebx, [esi + 0xb4]
mov byte [esp + 0x244], 6
mov dword [ebx], eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x40d759
mov eax, dword [ecx]
push str.voc_lev
call dword [eax + 0x1c]
mov edi, eax
test edi, edi
je 0x40d759
push 0x178
call fcn.0046335e
mov ebp, eax
add esp, 4
mov dword [esp + 0x10], ebp
test ebp, ebp
mov byte [esp + 0x244], 0x11
je 0x40d724
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 0x20]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x1c]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x30]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x2c]
push eax
mov ecx, ebp
call fcn.004517e0
jmp 0x40d726
xor eax, eax
lea ecx, [esp + 0x14]
push str.voc_vol
push ecx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0xb8], eax
call fcn.004519c0
mov dword [esi + 0x198], 1
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
jmp 0x40d799
push 0x178
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x12
je 0x40d789
push 1
push 0
push 0
push 0
push 0
mov ecx, eax
call fcn.004517e0
jmp 0x40d78b
xor eax, eax
mov byte [esp + 0x244], 6
mov dword [esi + 0xb8], eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x40d834
mov eax, dword [ecx]
push str.sef_lev
call dword [eax + 0x1c]
mov edi, eax
test edi, edi
je 0x40d834
push 0x178
call fcn.0046335e
mov ebp, eax
add esp, 4
mov dword [esp + 0x10], ebp
test ebp, ebp
mov byte [esp + 0x244], 0x13
je 0x40d7ff
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 0x20]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x1c]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x30]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x2c]
push eax
mov ecx, ebp
call fcn.004517e0
jmp 0x40d801
xor eax, eax
lea ecx, [esp + 0x14]
push str.sef_vol
push ecx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0xbc], eax
call fcn.004519c0
mov dword [esi + 0x19c], 1
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
jmp 0x40d874
push 0x178
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x14
je 0x40d864
push 1
push 0
push 0
push 0
push 0
mov ecx, eax
call fcn.004517e0
jmp 0x40d866
xor eax, eax
mov byte [esp + 0x244], 6
mov dword [esi + 0xbc], eax
mov edi, ebx
mov ebp, 3
mov eax, dword [edi]
test eax, eax
je 0x40d88b
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
mov ecx, dword [esi + 0x58]
push 1
push 0xa
push eax
call fcn.0043f100
mov eax, dword [edi]
push esi
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
add edi, 4
dec ebp
jne 0x40d87b
mov ecx, dword [ebx]
push 0x40fff0
call fcn.00440670
mov ecx, dword [esi + 0xb8]
push 0x40ffd0
call fcn.00440670
mov ecx, dword [esi + 0xbc]
push 0x410010
call fcn.00440670
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x40d98d
mov eax, dword [ecx]
push str.auto_lev
call dword [eax + 0x1c]
mov edi, eax
test edi, edi
je 0x40d98d
push 0x178
call fcn.0046335e
mov ebp, eax
add esp, 4
mov dword [esp + 0x10], ebp
test ebp, ebp
mov byte [esp + 0x244], 0x15
je 0x40d946
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 0x20]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x1c]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x30]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x2c]
push eax
mov ecx, ebp
call fcn.004517e0
jmp 0x40d948
xor eax, eax
push 0
push 0x1388
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0xc0], eax
call fcn.00451af0
lea ecx, [esp + 0x14]
push str.auto_vol
push ecx
mov ecx, dword [esi + 0xc0]
call fcn.004519c0
mov dword [esi + 0x1a0], 0
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx]
jmp 0x40d9cd
push 0x178
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x16
je 0x40d9bd
push 1
push 0
push 0
push 0
push 0
mov ecx, eax
call fcn.004517e0
jmp 0x40d9bf
xor eax, eax
mov byte [esp + 0x244], 6
mov dword [esi + 0xc0], eax
mov eax, dword [esi + 0xc0]
test eax, eax
je 0x40d9e1
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
mov ecx, dword [esi + 0x58]
push 1
push 0xa
push eax
call fcn.0043f100
mov eax, dword [esi + 0xc0]
push esi
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
mov ecx, dword [esi + 0xc0]
push 0x410030
call fcn.00440670
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x17
je 0x40da3c
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40da3e
xor eax, eax
lea ecx, [esp + 0x14]
push str.scm_wnd
push ecx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0x84], eax
call fcn.00432810
mov ecx, dword [esi + 0x84]
lea edx, [esp + 0x14]
push str.scm_ful
push edx
call fcn.00432810
mov eax, dword [esi + 0x84]
push esi
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x84]
push 3
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0x84]
push 0x40fb60
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x84]
test eax, eax
je 0x40dacd
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x18
je 0x40db02
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40db04
xor eax, eax
lea ecx, [esp + 0x14]
push str.msp_now
push ecx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0x88], eax
call fcn.00432810
mov ecx, dword [esi + 0x88]
lea edx, [esp + 0x14]
push str.msp_fst
push edx
call fcn.00432810
mov ecx, dword [esi + 0x88]
lea eax, [esp + 0x14]
push str.msp_nom
push eax
call fcn.00432810
lea ecx, [esp + 0x14]
push str.msp_slw
push ecx
mov ecx, dword [esi + 0x88]
call fcn.00432810
mov eax, dword [esi + 0x88]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x88]
push 3
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0x88]
push 0x40fbd0
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x88]
test eax, eax
je 0x40dbbd
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x19
je 0x40dbf2
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40dbf4
xor eax, eax
lea edx, [esp + 0x14]
push 0x481298
push edx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0x8c], eax
call fcn.004327a0
mov eax, dword [esi + 0x8c]
push esi
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x8c]
push 3
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0x8c]
push 0x40fc50
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x40dc6e
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x1a
je 0x40dca3
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40dca5
xor eax, eax
lea ecx, [esp + 0x14]
push 0x481294
push ecx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0x90], eax
call fcn.004327a0
mov eax, dword [esi + 0x90]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x90]
push 3
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0x90]
push 0x40fcd0
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x90]
test eax, eax
je 0x40dd1f
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x1b
je 0x40dd54
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40dd56
xor eax, eax
lea edx, [esp + 0x14]
push 0x481290
push edx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0x94], eax
call fcn.004327a0
mov eax, dword [esi + 0x94]
push esi
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x94]
push 3
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0x94]
push 0x40fd20
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x94]
test eax, eax
je 0x40ddd0
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x1c
je 0x40de05
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40de07
xor eax, eax
lea ecx, [esp + 0x14]
push 0x48128c
push ecx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0x98], eax
call fcn.004327a0
mov eax, dword [esi + 0x98]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x98]
push 3
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0x98]
push 0x40fd70
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x98]
test eax, eax
je 0x40de81
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x1d
je 0x40deb6
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40deb8
xor eax, eax
lea edx, [esp + 0x14]
push 0x481288
push edx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0x9c], eax
call fcn.004327a0
mov eax, dword [esi + 0x9c]
push esi
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x9c]
push 3
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0x9c]
push 0x40fdc0
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x40df32
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x1e
je 0x40df67
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40df69
xor eax, eax
lea ecx, [esp + 0x14]
push 0x481284
push ecx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0xa0], eax
call fcn.004327a0
mov eax, dword [esi + 0xa0]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0xa0]
push 3
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0xa0]
push 0x40fe40
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0xa0]
test eax, eax
je 0x40dfe3
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x1f
je 0x40e018
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40e01a
xor eax, eax
lea edx, [esp + 0x14]
push 0x481280
push edx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0xa4], eax
call fcn.004327a0
mov eax, dword [esi + 0xa4]
push esi
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0xa4]
push 3
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0xa4]
push 0x40fea0
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0xa4]
test eax, eax
je 0x40e094
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x20
je 0x40e0c9
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40e0cb
xor eax, eax
lea ecx, [esp + 0x14]
push str.vocst
push ecx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0xa8], eax
call fcn.004327a0
mov eax, dword [esi + 0xa8]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0xa8]
push 3
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0xa8]
push 0x40fef0
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0xa8]
test eax, eax
je 0x40e145
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x21
je 0x40e17a
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40e17c
xor eax, eax
lea edx, [esp + 0x14]
push 0x481274
push edx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0xac], eax
call fcn.004327a0
mov eax, dword [esi + 0xac]
push esi
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0xac]
push 3
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0xac]
push 0x40ff40
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0xac]
test eax, eax
je 0x40e1f6
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x22
je 0x40e22b
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40e22d
xor eax, eax
lea ecx, [esp + 0x14]
push 0x481270
push ecx
mov ecx, eax
mov byte [esp + 0x24c], 6
mov dword [esi + 0xb0], eax
call fcn.004327a0
mov eax, dword [esi + 0xb0]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0xb0]
push 3
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0xb0]
push 0x40ffb0
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0xb0]
test eax, eax
je 0x40e2a7
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
xor ebp, ebp
lea edi, [esi + 0xc8]
mov ebx, 2
push ebp
lea edx, [esp + 0x20]
push str.pv_02d
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
push 0x140
call fcn.0046335e
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x23
je 0x40e2fa
push 1
mov ecx, eax
call fcn.00450f50
jmp 0x40e2fc
xor eax, eax
lea ecx, [esp + 0x1c]
mov dword [edi], eax
mov edx, dword [eax]
push ecx
lea ecx, [esp + 0x18]
mov byte [esp + 0x248], 6
push ecx
mov ecx, eax
call dword [edx + 4]
mov eax, dword [edi]
push esi
mov dword [eax + 0x18], ebx
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [edi]
push ebp
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [edi]
push 0x410120
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [edi]
test eax, eax
je 0x40e366
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
inc ebp
add edi, 4
cmp ebp, 0xa
jl 0x40e2c1
xor ebx, ebx
lea edi, [esi + 0xf0]
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x24
je 0x40e3b0
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40e3b2
xor eax, eax
mov byte [esp + 0x244], 6
mov dword [edi], eax
xor ebp, ebp
push ebp
push ebx
lea edx, [esp + 0x24]
push str.ex_02d__d
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x14]
push eax
push ecx
mov ecx, dword [edi]
call fcn.00432810
inc ebp
cmp ebp, 0xa
jl 0x40e3be
mov eax, dword [edi]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [edi]
push ebx
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [edi]
push 0x4102f0
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [edi]
test eax, eax
je 0x40e434
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
inc ebx
add edi, 4
cmp ebx, 0xa
jl 0x40e388
xor ebx, ebx
lea edi, [esi + 0x118]
push 0x130
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x25
je 0x40e47e
push 1
mov ecx, eax
call fcn.00432600
jmp 0x40e480
xor eax, eax
mov byte [esp + 0x244], 6
mov dword [edi], eax
xor ebp, ebp
push ebp
push ebx
lea edx, [esp + 0x24]
push str.gx_02d__d
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x14]
push eax
push ecx
mov ecx, dword [edi]
call fcn.00432810
inc ebp
cmp ebp, 0xa
jl 0x40e48c
mov eax, dword [edi]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [edi]
push ebx
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [edi]
push 0x410340
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [edi]
test eax, eax
je 0x40e502
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
inc ebx
add edi, 4
cmp ebx, 0xa
jl 0x40e456
push 0x13c
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x26
je 0x40e544
push 1
mov ecx, eax
call fcn.004499f0
jmp 0x40e546
xor eax, eax
push 1
lea ecx, [esp + 0x18]
mov dword [esi + 0x140], eax
mov edx, dword [eax]
push str.bgm_test
push ecx
mov ecx, eax
mov byte [esp + 0x250], 6
call dword [edx + 4]
mov eax, dword [esi + 0x140]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x140]
push ebx
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0x140]
push 0x410180
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x140]
test eax, eax
je 0x40e5c1
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x13c
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x27
je 0x40e5f6
push 1
mov ecx, eax
call fcn.004499f0
jmp 0x40e5f8
xor eax, eax
push 1
lea ecx, [esp + 0x18]
mov dword [esi + 0x144], eax
mov edx, dword [eax]
push str.sef_test
push ecx
mov ecx, eax
mov byte [esp + 0x250], 6
call dword [edx + 4]
mov eax, dword [esi + 0x144]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x144]
push ebx
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0x144]
push 0x410210
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x144]
test eax, eax
je 0x40e673
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
push 0x13c
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x28
je 0x40e6a8
push 1
mov ecx, eax
call fcn.004499f0
jmp 0x40e6aa
xor eax, eax
push 1
lea ecx, [esp + 0x18]
mov dword [esi + 0x148], eax
mov edx, dword [eax]
push str.voc_test
push ecx
mov ecx, eax
mov byte [esp + 0x250], 6
call dword [edx + 4]
mov eax, dword [esi + 0x148]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x148]
push ebx
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [esi + 0x148]
push 0x410250
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x148]
test eax, eax
je 0x40e725
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
xor ebp, ebp
lea edi, [esi + 0x14c]
push ebp
lea edx, [esp + 0x20]
push str.pv_02d_test
push edx
call ebx
push 0x13c
call fcn.0046335e
add esp, 0x10
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x29
je 0x40e775
push 1
mov ecx, eax
call fcn.004499f0
jmp 0x40e777
xor eax, eax
lea ecx, [esp + 0x1c]
push 1
push ecx
lea ecx, [esp + 0x1c]
mov dword [edi], eax
mov edx, dword [eax]
push ecx
mov ecx, eax
mov byte [esp + 0x250], 6
call dword [edx + 4]
mov eax, dword [edi]
push esi
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov eax, dword [edi]
push ebp
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442780
mov eax, dword [edi]
push 0x4102a0
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d50
mov eax, dword [edi]
test eax, eax
je 0x40e7de
mov edx, dword [eax + 4]
mov ecx, dword [edx + 4]
lea eax, [ecx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
inc ebp
add edi, 4
cmp ebp, 0xa
jl 0x40e740
push 0x14c
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x2a
je 0x40e820
push 1
mov ecx, eax
call fcn.004501e0
jmp 0x40e822
xor eax, eax
mov dword [esi + 0x178], eax
mov edx, dword [eax + 4]
push esi
mov byte [esp + 0x248], 6
mov ecx, dword [edx + 4]
lea ecx, [ecx + eax + 4]
call fcn.00442d80
mov ecx, dword [esi + 0x178]
push 1
lea edx, [esp + 0x18]
push str.font
push edx
call fcn.004504d0
mov eax, dword [esi + 0x178]
push 0x4103d0
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d50
mov eax, dword [esi + 0x178]
test eax, eax
je 0x40e885
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
mov ecx, dword [esi + 0x58]
push 0
push 1
push eax
call fcn.0043f100
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x40e96c
mov eax, dword [ecx]
push str.fontwnd
call dword [eax + 0x1c]
mov edi, eax
test edi, edi
je 0x40e96c
push 0x158
call fcn.0046335e
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x244], 0x2b
je 0x40e8da
push 1
mov ecx, eax
call fcn.00430940
jmp 0x40e8dc
xor eax, eax
mov dword [esi + 0x174], eax
mov ecx, dword [eax + 4]
push esi
mov byte [esp + 0x248], 6
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d80
mov eax, dword [esi + 0x174]
push 0x410750
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea ecx, [edx + eax + 4]
call fcn.00442d50
mov ebx, dword [esi + 0x174]
mov edx, dword [edi]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
mov ebp, dword [ecx + ebx + 4]
mov ecx, edi
call dword [edx + 0x30]
push eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x2c]
mov ecx, dword [ebx + 4]
push eax
mov edx, dword [ecx + 4]
lea ecx, [edx + ebx + 4]
call dword [ebp + 0xc4]
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
mov eax, dword [esi + 0x174]
test eax, eax
je 0x40e960
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
push 0
push 0xa
push eax
mov ecx, esi
call fcn.0043f100
mov eax, dword [esi + 0x58]
test eax, eax
je 0x40e97d
mov ecx, dword [eax + 4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax + 4]
push 0
push 0
push eax
mov ecx, esi
call fcn.0043f100
mov dword [esp + 0x14], 0x476564
mov ecx, dword [esp + 0x18]
mov byte [esp + 0x244], 0x2c
test ecx, ecx
je 0x40e9a7
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [esp + 0x23c]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x238
ret 4