Function at 0x4066f0
Capabilities:
Hash data with md5
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, 0x15f4
call fcn.004c5290
mov eax, dword [0x5265f0]
xor eax, esp
mov dword [esp + 0x15f0], eax
push ebx
push esi
mov esi, ecx
xor ebx, ebx
cmp dword [esi + 0x4c0], ebx
push edi
mov dword [esp + 0x3c], esi
jne 0x408df6
cmp dword [esi + 0xac], ebx
je 0x408df6
xor eax, eax
mov ecx, dword [esi + 0x4c8]
mov word [eax + ecx], bx
add eax, 2
cmp eax, 0x2000
jl 0x406733
xor eax, eax
lea esp, [esp]
mov edx, dword [esi + 0x4cc]
mov byte [eax + edx], bl
add eax, 1
cmp eax, 0x2000
jl 0x406750
mov ecx, dword [esi + 0xac]
mov eax, dword [esi + 0xb8]
mov edx, ecx
mov dword [esp + 0x28], eax
mov eax, dword [ecx]
mov dword [esp + 0x18], edx
mov edx, dword [eax + 0x20]
push ebx
mov edi, ecx
call edx
push eax
mov eax, dword [edi]
mov edx, dword [eax + 0x1c]
push ebx
mov ecx, edi
call edx
mov ecx, edi
push eax
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
call edx
push eax
push str._d__d__d
lea eax, [esp + 0x208]
push 0x200
push eax
call fcn.004225f0
add esp, 0x18
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
cmp dword [ebp + 8], ebx
mov ecx, dword [esi + 0xac]
lea eax, [esp + 0x1f8]
push eax
mov word [esp + 0x1fc], bx
mov edx, dword [ecx]
push ebx
je 0x406809
mov edx, dword [edx + 0x34]
call edx
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x3c]
jmp 0x406830
mov edx, dword [edx + 0x30]
call edx
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x38]
lea eax, [esp + 0x1f8]
push eax
push ebx
call edx
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
lea eax, [esp + 0x1f8]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x44]
push eax
push ebx
call edx
test eax, eax
je 0x40692c
cmp word [esp + 0x1f8], bx
jne 0x406900
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
lea edx, [esp + 0x9f8]
push edx
push ebx
call eax
test eax, eax
je 0x406900
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x54]
push ebx
call eax
cmp eax, 0xffffffff
je 0x4068de
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x54]
push ebx
call eax
push eax
lea ecx, [esp + 0x9fc]
push ecx
push str._s__d_MHz
lea edx, [esp + 0x204]
push 0x200
push edx
call fcn.004225f0
add esp, 0x14
jmp 0x406900
lea eax, [esp + 0x9f8]
push eax
push 0x4f7398
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x5c]
push ebx
call eax
test eax, eax
je 0x40692c
push str.__ES_
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
add esp, 0xc
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0x60]
push ebx
call edx
cmp eax, 0xffffffff
je 0x40699d
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [edx + 0x68]
push ebx
mov edi, ecx
call eax
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x64]
push ebx
mov ecx, edi
call eax
mov ecx, edi
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 0x60]
push ebx
call eax
push eax
push str._X._X._X
lea ecx, [esp + 0x208]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x18
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0x6c]
push ebx
call edx
cmp eax, 0xffffffff
je 0x406a10
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x70]
push ebx
call edx
cmp eax, 0xffffffff
je 0x406a10
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov edx, dword [eax + 0x70]
push ebx
mov edi, ecx
call edx
push eax
mov eax, dword [edi]
mov edx, dword [eax + 0x6c]
push ebx
mov ecx, edi
call edx
push eax
push str._X._X
lea eax, [esp + 0x204]
push 0x200
push eax
call fcn.004225f0
add esp, 0x14
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov eax, dword [edx + 0x4c]
push ebx
call eax
cmp eax, ebx
jle 0x406a54
push eax
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0x5c]
push ebx
call edx
neg eax
sbb eax, eax
neg eax
push eax
push 0x4f8be8
lea eax, [esp + 0x200]
push 0x200
push eax
call fcn.004225f0
add esp, 0x10
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
lea eax, [esp + 0x1f8]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x40]
push eax
push ebx
call edx
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov eax, dword [edx + 0x50]
push ebx
call eax
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x406b23
sub esp, 8
fstp qword [esp]
push str._.4f
lea ecx, [esp + 0x204]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x14
jmp 0x406b25
fstp st(0)
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
push 0x4f8688
lea eax, [esp + 0x1fc]
push 0x200
push eax
call fcn.004225f0
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 1
push ebx
call eax
test eax, eax
mov eax, 0x4f868c
jne 0x406b6c
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 2
push ebx
call eax
test eax, eax
mov eax, 0x4f8694
jne 0x406ba0
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 3
push ebx
call eax
test eax, eax
mov eax, 0x4f869c
jne 0x406bd4
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 4
push ebx
call eax
test eax, eax
mov eax, 0x4f8694
jne 0x406c08
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 5
push ebx
call eax
test eax, eax
mov eax, str._SSE
jne 0x406c3c
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 6
push ebx
call eax
test eax, eax
mov eax, str.__1_2
jne 0x406c70
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 7
push ebx
call eax
test eax, eax
mov eax, 0x4f86cc
jne 0x406ca4
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 8
push ebx
call eax
test eax, eax
mov eax, str._3S
jne 0x406cd8
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 9
push ebx
call eax
test eax, eax
mov eax, str._4.1
jne 0x406d0c
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 0xc
push ebx
call eax
test eax, eax
mov eax, str._4.2
jne 0x406d40
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 0xd
push ebx
call eax
test eax, eax
mov eax, str._4A
jne 0x406d74
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 0xe
push ebx
call eax
test eax, eax
mov eax, 0x4f8704
jne 0x406da8
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 6
push ebx
call eax
test eax, eax
je 0x406dec
push 0x4f870c
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
add esp, 0xc
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
push ebx
call eax
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
push 0x10
test eax, 0x1000000
mov eax, dword [edx + 0x74]
push ebx
je 0x406e1a
call eax
test eax, eax
mov eax, 0x4f8710
jmp 0x406e23
call eax
test eax, eax
mov eax, str._x86_64
jne 0x406e2a
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
add esp, 0xc
push ebx
call eax
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
push 0x12
test eax, 0x1000000
mov eax, dword [edx + 0x74]
push ebx
je 0x406e6e
call eax
test eax, eax
mov eax, str._VT_x
jmp 0x406e77
call eax
test eax, eax
mov eax, str._AMD_V
jne 0x406e7e
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 0x13
push ebx
call eax
test eax, eax
mov eax, str._AES
jne 0x406eb2
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x74]
add esp, 0xc
push 0x14
push ebx
call eax
test eax, eax
mov eax, str._AVX
jne 0x406ee6
mov eax, 0x4f7d8c
push eax
lea ecx, [esp + 0x1fc]
push 0x200
push ecx
call fcn.004c30c8
add esp, 0xc
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov edi, dword [esp + 0x28]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0x88]
push edi
push ebx
call edx
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x406f66
fdiv qword [0x505bb0]
sub esp, 8
lea eax, [esp + 0x200]
fstp qword [esp]
push str._.2f
push 0x200
push eax
call fcn.004225f0
add esp, 0x14
jmp 0x406f68
fstp st(0)
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov eax, dword [edx + 0x7c]
push edi
push ebx
call eax
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x406fc5
sub esp, 8
fstp qword [esp]
push str._.2f
lea ecx, [esp + 0x204]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x14
jmp 0x406fc7
fstp st(0)
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0x90]
call edx
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x407025
sub esp, 8
fstp qword [esp]
push str._.2f
lea eax, [esp + 0x204]
push 0x200
push eax
call fcn.004225f0
add esp, 0x14
jmp 0x407027
fstp st(0)
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x80]
push edi
push ebx
call eax
fstp dword [esp + 0x18]
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x84]
push edi
push ebx
call eax
fstp dword [esp + 0x20]
fldz
mov word [esp + 0x1f8], bx
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x40709d
sub esp, 8
fstp qword [esp]
push str._.1f
lea ecx, [esp + 0x204]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x14
jmp 0x40709f
fstp st(0)
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
fldz
fld dword [esp + 0x20]
mov word [esp + 0x1f8], bx
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4070e9
sub esp, 8
fstp qword [esp]
push str._.1f
lea eax, [esp + 0x204]
push 0x200
push eax
call fcn.004225f0
add esp, 0x14
jmp 0x4070eb
fstp st(0)
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
lea eax, [esp + 0x1c]
push eax
push 2
mov word [esp + 0x200], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
push 1
push ebx
call edx
cmp eax, ebx
jle 0x4071e4
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x4072ab
cmp eax, 1
push ecx
jle 0x407151
push eax
push str._d_x__d
lea eax, [esp + 0x204]
push 0x200
push eax
call fcn.004225f0
add esp, 0x14
jmp 0x40716b
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x30]
push eax
push 2
push 1
push ebx
call edx
test eax, eax
jle 0x4072ab
mov ecx, dword [esp + 0x24]
mov eax, ecx
sub eax, 1
je 0x4072ab
sub eax, 0xfe
je 0x4072ab
cmp ecx, 0xffffffff
je 0x4072ab
push ecx
push 0x4f8794
lea eax, [esp + 0xa00]
push 0x200
push eax
call fcn.004225f0
lea ecx, [esp + 0xa08]
push ecx
push 0x200
lea edx, [esp + 0x210]
push edx
jmp 0x4072a3
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
lea edx, [esp + 0x1c]
push edx
push 4
push 1
push ebx
call eax
cmp eax, ebx
jle 0x4072ab
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x4072ab
cmp eax, 1
push ecx
jle 0x407233
push eax
push str._d_x__d
lea ecx, [esp + 0x204]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x14
jmp 0x40724d
push 0x4f8be8
lea edx, [esp + 0x200]
push 0x200
push edx
call fcn.004225f0
add esp, 0x10
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x30]
push edx
push 4
push 1
push ebx
call eax
test eax, eax
jle 0x4072ab
mov eax, dword [esp + 0x24]
cmp eax, 0xffffffff
je 0x4072ab
push eax
push 0x4f8794
lea ecx, [esp + 0xa00]
push 0x200
push ecx
call fcn.004225f0
lea edx, [esp + 0xa08]
push edx
push 0x200
lea eax, [esp + 0x210]
push eax
call fcn.004c30c8
add esp, 0x1c
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
lea eax, [esp + 0x1c]
push eax
push 1
mov word [esp + 0x200], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
push 1
push ebx
call edx
cmp eax, ebx
jle 0x407397
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x407397
cmp eax, 1
push ecx
jle 0x407311
push eax
push str._d_x__d
lea eax, [esp + 0x204]
push 0x200
push eax
call fcn.004225f0
add esp, 0x14
jmp 0x40732b
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x30]
push eax
push 1
push 1
push ebx
call edx
test eax, eax
jle 0x407397
mov ecx, dword [esp + 0x24]
mov eax, ecx
sub eax, 1
je 0x407397
sub eax, 0xfe
je 0x407397
cmp ecx, 0xffffffff
je 0x407397
push ecx
push 0x4f8794
lea eax, [esp + 0xa00]
push 0x200
push eax
call fcn.004225f0
lea ecx, [esp + 0xa08]
push ecx
lea edx, [esp + 0x20c]
push 0x200
push edx
call fcn.004c30c8
add esp, 0x1c
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
lea eax, [esp + 0x1c]
push eax
push 3
mov word [esp + 0x200], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
push 2
push ebx
call edx
cmp eax, ebx
jle 0x407498
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x407523
cmp eax, 1
push ecx
jle 0x4073fd
push eax
push str._d_x__d
lea eax, [esp + 0x204]
push 0x200
push eax
call fcn.004225f0
add esp, 0x14
jmp 0x407417
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0x28]
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x30]
push eax
push 3
push 2
push ebx
call edx
test eax, eax
jle 0x407523
mov ecx, dword [esp + 0x24]
mov eax, ecx
sub eax, 1
je 0x407523
sub eax, 0xfe
je 0x407523
cmp ecx, 0xffffffff
je 0x407523
push ecx
push 0x4f8794
lea eax, [esp + 0xa00]
push 0x200
push eax
call fcn.004225f0
lea ecx, [esp + 0xa08]
push ecx
lea edx, [esp + 0x20c]
push 0x200
push edx
call fcn.004c30c8
add esp, 0x1c
jmp 0x407523
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
lea edx, [esp + 0x1c]
push edx
push 2
push 2
push ebx
xor edi, edi
call eax
test eax, eax
jle 0x4074c0
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x4074c0
mov edi, eax
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
lea eax, [esp + 0x1c]
push eax
push 1
push 2
push ebx
call edx
cmp eax, ebx
jle 0x407523
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x407523
add edi, ecx
cmp eax, 1
push edi
jle 0x407509
push eax
push str._d_x__d_KBytes
lea eax, [esp + 0x204]
push 0x200
push eax
call fcn.004225f0
add esp, 0x14
jmp 0x407523
push str._d_KBytes
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
lea edx, [esp + 0x1c]
push edx
push 3
mov word [esp + 0x200], bx
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
push 3
push ebx
call eax
cmp eax, ebx
jle 0x40760f
mov ecx, dword [esp + 0x1c]
cmp ecx, 0xffffffff
je 0x40760f
cmp eax, 1
push ecx
jle 0x407589
push eax
push str._d_x__d
lea ecx, [esp + 0x204]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x14
jmp 0x4075a3
push 0x4f8be8
lea edx, [esp + 0x200]
push 0x200
push edx
call fcn.004225f0
add esp, 0x10
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
lea edx, [esp + 0x24]
push edx
lea edx, [esp + 0x30]
push edx
push 3
push 3
push ebx
call eax
test eax, eax
jle 0x40760f
mov ecx, dword [esp + 0x24]
mov eax, ecx
sub eax, 1
je 0x40760f
sub eax, 0xfe
je 0x40760f
cmp ecx, 0xffffffff
je 0x40760f
push ecx
push 0x4f8794
lea ecx, [esp + 0xa00]
push 0x200
push ecx
call fcn.004225f0
lea edx, [esp + 0xa08]
push edx
lea eax, [esp + 0x20c]
push 0x200
push eax
call fcn.004c30c8
add esp, 0x1c
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
lea eax, [esp + 0x1f8]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
push eax
push ebx
call edx
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov eax, dword [edx + 0x58]
push ebx
call eax
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x407698
sub esp, 8
fstp qword [esp]
push str._.2f
lea ecx, [esp + 0x204]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x14
jmp 0x40769a
fstp st(0)
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0x78]
push ebx
call edx
mov edx, dword [0x528d08]
cmp edx, 0xffffffff
mov edi, 0x528d08
je 0x407708
mov ecx, edi
cmp eax, edx
je 0x4076ea
mov edx, dword [ecx + 0x84]
add ecx, 0x84
cmp edx, 0xffffffff
mov edi, ecx
jne 0x4076d1
jmp 0x407708
add edi, 4
push edi
push 0x4f7398
lea eax, [esp + 0x200]
push 0x200
push eax
call fcn.004225f0
add esp, 0x10
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov word [esp + 0x9f8], bx
mov word [esp + 0x11f8], bx
mov word [esp + 0xdf8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0xe4]
lea eax, [esp + 0x9f8]
push eax
call edx
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov eax, dword [eax + 0xe8]
lea edx, [esp + 0x11f8]
push edx
call eax
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0xec]
lea eax, [esp + 0xdf8]
push eax
call edx
lea eax, [esp + 0xdf8]
push eax
lea ecx, [esp + 0x11fc]
push ecx
lea edx, [esp + 0xa00]
push edx
push str._s__s_rev__s
lea eax, [esp + 0x208]
push 0x200
push eax
call fcn.004225f0
add esp, 0x18
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov word [esp + 0x9f8], bx
mov word [esp + 0x11f8], bx
mov word [esp + 0xdf8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0xf0]
lea eax, [esp + 0x9f8]
push eax
call edx
mov ecx, dword [esi + 0xac]
mov eax, dword [ecx]
mov eax, dword [eax + 0xf4]
lea edx, [esp + 0x11f8]
push edx
call eax
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0xf8]
lea eax, [esp + 0xdf8]
push eax
call edx
lea eax, [esp + 0xdf8]
push eax
lea ecx, [esp + 0x11fc]
push ecx
lea edx, [esp + 0xa00]
push edx
push str._s__s_rev__s
lea eax, [esp + 0x208]
push 0x200
push eax
call fcn.004225f0
add esp, 0x18
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x9c]
call eax
push eax
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0xa0]
call edx
add eax, 0xfffffffe
cmp eax, 7
ja case.default.0x4078c7
jmp dword [eax*4 + 0x408e10]
push 0x4f87ec
push 0x200
lea eax, [esp + 0x200]
push eax
jmp 0x407952
push 0x4f87f4
jmp 0x407945
push str.SDRAM
push 0x200
lea edx, [esp + 0x200]
push edx
jmp 0x407952
push str.RDRAM
push 0x200
lea eax, [esp + 0x200]
push eax
jmp 0x407952
push str.DDR_SDRAM
jmp 0x407945
push str.DDR2_SDRAM
push 0x200
lea edx, [esp + 0x200]
push edx
jmp 0x407952
push str.DDR3_SDRAM
push 0x200
lea eax, [esp + 0x200]
push eax
jmp 0x407952
push str.FB_DDR2
push 0x200
lea ecx, [esp + 0x200]
push ecx
call fcn.004225f0
add esp, 0xc
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0xac]
call edx
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4079b8
sub esp, 8
fstp qword [esp]
push str._.1f
lea eax, [esp + 0x204]
push 0x200
push eax
call fcn.004225f0
add esp, 0x14
jmp 0x4079ba
fstp st(0)
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0xe0]
lea eax, [esp + 0x1f8]
push eax
call edx
fcomp dword [0x4f5ca0]
fnstsw ax
test ah, 0x41
jne 0x407a00
lea eax, [esp + 0x1f8]
push eax
jmp 0x407a10
lea ecx, [esp + 0x1f8]
mov word [esp + 0x1f8], bx
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov eax, dword [edx + 0xb0]
call eax
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x407a66
sub esp, 8
fstp qword [esp]
push str._.1f
lea ecx, [esp + 0x204]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x14
jmp 0x407a68
fstp st(0)
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0xb8]
call edx
cmp eax, 0xffffffff
je 0x407aaf
push eax
push 0x4f8be8
lea eax, [esp + 0x200]
push 0x200
push eax
call fcn.004225f0
add esp, 0x10
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov eax, dword [edx + 0xbc]
call eax
cmp eax, 0xffffffff
je 0x407af6
push eax
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0xc4]
call edx
cmp eax, 0xffffffff
je 0x407b3d
push eax
push 0x4f8be8
lea eax, [esp + 0x200]
push 0x200
push eax
call fcn.004225f0
add esp, 0x10
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov eax, dword [edx + 0xc8]
call eax
cmp eax, 0xffffffff
je 0x407b84
push eax
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0xdc]
call edx
cmp eax, 0xffffffff
je 0x407bcb
push eax
push 0x4f8be8
lea eax, [esp + 0x200]
push 0x200
push eax
call fcn.004225f0
add esp, 0x10
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov eax, dword [edx + 0xd4]
call eax
cmp eax, 0xffffffff
je 0x407c12
push eax
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0xa4]
call edx
cmp eax, 0xffffffff
je 0x407c59
push eax
push 0x4f8be8
lea eax, [esp + 0x200]
push 0x200
push eax
call fcn.004225f0
add esp, 0x10
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x144]
call eax
mov dword [esp + 0x18], eax
xor edi, edi
mov edi, edi
cmp edi, dword [esp + 0x18]
lea eax, [esp + 0x1f8]
mov word [esp + 0x1f8], bx
push eax
jge 0x407d41
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0x14c]
push edi
call edx
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov eax, dword [edx + 0x164]
push edi
call eax
cmp eax, 0xffffffff
je 0x407cf3
push eax
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0x160]
push edi
call edx
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
je 0x407d57
push eax
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
jmp 0x407d57
mov ecx, esi
call fcn.00406640
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
add edi, 1
cmp edi, 6
jl 0x407c80
mov ecx, dword [esi + 0xac]
mov edi, dword [esp + 0x28]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0x8c]
push edi
push ebx
call edx
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x407def
fmul qword [0x505bf0]
lea ecx, [esp + 0x1f8]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
xor eax, 0x57500913
push eax
push 0x4f8868
fldcw word [esp + 0x20]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
jmp 0x407df1
fstp st(0)
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
fld dword [esi + 0xcd4]
fstp dword [esp + 0x18]
mov word [esp + 0x1f8], bx
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x407e4c
mov ecx, dword [esi + 0xac]
fstp st(0)
mov eax, dword [ecx]
mov edx, dword [eax + 0x8c]
push edi
push ebx
call edx
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x407e96
fmul qword [0x505bf0]
lea ecx, [esp + 0x1f8]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
xor eax, 0x45171489
push eax
push 0x4f8868
fldcw word [esp + 0x20]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
jmp 0x407e98
fstp st(0)
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0x54]
push ebx
call edx
cmp eax, 0xffffffff
je 0x407edd
push eax
push 0x4f8be8
lea eax, [esp + 0x200]
push 0x200
push eax
call fcn.004225f0
add esp, 0x10
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x108]
lea eax, [esp + 0x1f8]
push eax
call edx
push ebx
push ebx
push 0x400
lea eax, [esp + 0x604]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x20c]
push ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jle 0x407f9f
lea eax, [esp + 0x5f8]
xor edi, edi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x407f40
sub eax, edx
cmp eax, ebx
jle 0x407f7f
nop
cmp byte [esp + edi + 0x5f8], 0x2c
jne 0x407f62
mov byte [esp + edi + 0x5f8], 0x20
lea eax, [esp + 0x5f8]
add edi, 1
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x407f70
sub eax, edx
cmp edi, eax
jl 0x407f50
push 0x200
lea edx, [esp + 0x1fc]
push edx
push 0xffffffffffffffff
lea eax, [esp + 0x604]
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x10c]
lea eax, [esp + 0x1f8]
push eax
call edx
push ebx
push ebx
push 0x400
lea eax, [esp + 0x604]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x20c]
push ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jle 0x40805f
lea eax, [esp + 0x5f8]
xor edi, edi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x408000
sub eax, edx
cmp eax, ebx
jle 0x40803f
nop
cmp byte [esp + edi + 0x5f8], 0x2c
jne 0x408022
mov byte [esp + edi + 0x5f8], 0x20
lea eax, [esp + 0x5f8]
add edi, 1
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x408030
sub eax, edx
cmp edi, eax
jl 0x408010
push 0x200
lea edx, [esp + 0x1fc]
push edx
push 0xffffffffffffffff
lea eax, [esp + 0x604]
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1cc]
call eax
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], edi
jle 0x4082c0
cmp edi, 4
jge 0x4082af
mov ecx, dword [esi + 0xac]
lea eax, [esp + 0x1f8]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x1d4]
push eax
push edi
call edx
push ebx
push ebx
push 0x400
lea eax, [esp + 0x604]
push eax
push 0xffffffffffffffff
lea ecx, [esp + 0x20c]
push ecx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jle 0x408153
lea eax, [esp + 0x5f8]
xor edi, edi
lea edx, [eax + 1]
jmp 0x4080f0
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x4080f0
sub eax, edx
cmp eax, ebx
jle 0x40812f
nop
cmp byte [esp + edi + 0x5f8], 0x2c
jne 0x408112
mov byte [esp + edi + 0x5f8], 0x20
lea eax, [esp + 0x5f8]
add edi, 1
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x408120
sub eax, edx
cmp edi, eax
jl 0x408100
push 0x200
lea edx, [esp + 0x1fc]
push edx
push 0xffffffffffffffff
lea eax, [esp + 0x604]
push eax
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, dword [esp + 0x28]
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
lea eax, [esp + 0x38]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x204]
push eax
push edi
call edx
test eax, eax
je 0x4081a8
mov eax, dword [esp + 0x38]
cmp eax, 0xffffffff
je 0x4081a8
push eax
push 0x4f8be8
lea eax, [esp + 0x200]
push 0x200
push eax
call fcn.004225f0
add esp, 0x10
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov eax, dword [edx + 0x1e0]
push edi
call eax
cmp eax, ebx
jle 0x4081d7
sub eax, 1
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
push 1
push eax
mov eax, dword [edx + 0x1ec]
push edi
call eax
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x408222
call fcn.004c51b0
push eax
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
jmp 0x408224
fstp st(0)
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov eax, dword [ecx]
mov edx, dword [eax + 0x1e0]
push edi
call edx
cmp eax, ebx
jle 0x408253
sub eax, 1
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
push 3
push eax
mov eax, dword [edx + 0x1ec]
push edi
call eax
fstp dword [esp + 0x18]
fldz
fld dword [esp + 0x18]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x40829e
call fcn.004c51b0
push eax
push 0x4f8be8
lea ecx, [esp + 0x200]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x10
jmp 0x4082a0
fstp st(0)
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
add edi, 1
cmp edi, dword [esp + 0x20]
mov dword [esp + 0x28], edi
jl 0x408090
cmp edi, 4
mov word [esp + 0x1f8], bx
jge 0x408321
mov eax, 4
sub eax, edi
mov dword [esp + 0x20], eax
mov edi, eax
lea ebx, [ebx]
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
call fcn.00406640
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
sub edi, 1
jne 0x4082e0
mov ecx, dword [esi + 0xac]
mov word [esp + 0x1f8], bx
mov edx, dword [ecx]
mov edx, dword [edx + 0x220]
lea eax, [esp + 0x1f8]
push eax
call edx
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0x224]
lea eax, [esp + 0x1f8]
push eax
call edx
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0x228]
lea eax, [esp + 0x1f8]
push eax
call edx
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov eax, dword [edx + 0x94]
push ebx
call eax
fstp dword [esp + 0x28]
mov ecx, dword [esi + 0xac]
mov edx, dword [ecx]
mov edx, dword [edx + 0x1c8]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x34]
push eax
push 0x1000100
call edx
fstp dword [esp + 0x20]
fldz
mov word [esp + 0x1f8], bx
fld dword [esp + 0x20]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x408411
sub esp, 8
fstp st(1)
fstp qword [esp]
push str._.3f
lea eax, [esp + 0x204]
push 0x200
push eax
call fcn.004225f0
add esp, 0x14
jmp 0x408446
fstp st(0)
fld dword [esp + 0x28]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x408444
sub esp, 8
fstp qword [esp]
push str._.3f
lea ecx, [esp + 0x204]
push 0x200
push ecx
call fcn.004225f0
add esp, 0x14
jmp 0x408446
fstp st(0)
lea edx, [esp + 0x1f8]
push edx
mov ecx, esi
call fcn.00406640
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
mov word [esp + 0x1fc], bx
call fcn.00406640
lea ecx, [esp + 0x1f8]
push ecx
mov ecx, esi
mov word [esp + 0x1fc], bx
call fcn.00406640
mov eax, dword [0x530480]
cmp eax, 0xffffffff
mov word [esp + 0x1f8], bx
je 0x4084b0
push eax
push 0x4f8be8
lea edx, [esp + 0x200]
push 0x200
push edx
call fcn.004225f0
add esp, 0x10
lea eax, [esp + 0x1f8]
push eax
mov ecx, esi
call fcn.00406640
push 0x530884
mov ecx, esi
call fcn.00406640
lea ecx, [esi + 0x14e0]
push ecx
mov ecx, esi
call fcn.00406640
mov edx, dword [esi + 0x4cc]
mov eax, dword [esi + 0x4c8]
push ebx
push ebx
push 0x2000
push edx
push 0xffffffffffffffff
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, dword [esi + 0x4cc]
mov eax, esi
lea edi, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x408503
sub eax, edi
mov ecx, eax
add ecx, ecx
xor eax, eax
add ecx, ecx
add ecx, ecx
push ecx
push esi
lea esi, [esp + 0x100]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
mov dword [esp + 0x118], eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x164], ebx
mov dword [esp + 0x160], ebx
mov byte [esp + 0x120], bl
mov dword [esp + 0x168], ebx
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x170], ebx
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], ebx
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], ebx
mov dword [esp + 0x188], ebx
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x190], ebx
mov dword [esp + 0x194], ebx
mov dword [esp + 0x198], ebx
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], ebx
mov dword [esp + 0x1a4], ebx
call fcn.00420b90
lea edx, [esp + 0xa0]
push edx
mov ebx, esi
call fcn.00420d50
movzx eax, byte [esp + 0xe3]
movzx ecx, byte [esp + 0xe2]
movzx edx, byte [esp + 0xe1]
add esp, 0xc
push eax
movzx eax, byte [esp + 0xd8]
push ecx
movzx ecx, byte [esp + 0xdb]
push edx
movzx edx, byte [esp + 0xde]
push eax
movzx eax, byte [esp + 0xe1]
push ecx
movzx ecx, byte [esp + 0xe4]
push edx
movzx edx, byte [esp + 0xe7]
push eax
movzx eax, byte [esp + 0xea]
push ecx
movzx ecx, byte [esp + 0xed]
push edx
movzx edx, byte [esp + 0xf0]
push eax
movzx eax, byte [esp + 0xf3]
push ecx
movzx ecx, byte [esp + 0xf6]
push edx
movzx edx, byte [esp + 0xf9]
push eax
movzx eax, byte [esp + 0xfc]
push ecx
movzx ecx, byte [esp + 0xff]
push edx
movzx edx, byte [esp + 0x102]
push eax
movzx eax, byte [esp + 0x105]
push ecx
movzx ecx, byte [esp + 0x108]
push edx
push eax
push ecx
movzx edx, byte [esp + 0x113]
push edx
movzx eax, byte [esp + 0x116]
push eax
movzx ecx, byte [esp + 0x119]
push ecx
movzx edx, byte [esp + 0x11c]
push edx
movzx eax, byte [esp + 0x11f]
push eax
movzx ecx, byte [esp + 0x122]
push ecx
movzx edx, byte [esp + 0x125]
push edx
movzx eax, byte [esp + 0x128]
push eax
movzx ecx, byte [esp + 0x12b]
push ecx
movzx edx, byte [esp + 0x12e]
push edx
movzx eax, byte [esp + 0x131]
push eax
movzx ecx, byte [esp + 0x134]
push ecx
movzx edx, byte [esp + 0x137]
push edx
movzx eax, byte [esp + 0x13a]
movzx ecx, byte [esp + 0x139]
push eax
movzx edx, byte [esp + 0x13c]
movzx eax, byte [esp + 0x13b]
push ecx
movzx ecx, byte [esp + 0x13e]
push edx
movzx edx, byte [esp + 0x141]
push eax
movzx eax, byte [esp + 0x144]
push ecx
movzx ecx, byte [esp + 0x147]
push edx
movzx edx, byte [esp + 0x14a]
push eax
movzx eax, byte [esp + 0x14d]
push ecx
movzx ecx, byte [esp + 0x150]
push edx
movzx edx, byte [esp + 0x153]
push eax
movzx eax, byte [esp + 0x156]
push ecx
movzx ecx, byte [esp + 0x159]
push edx
movzx edx, byte [esp + 0x15c]
push eax
movzx eax, byte [esp + 0x15f]
push ecx
movzx ecx, byte [esp + 0x162]
push edx
movzx edx, byte [esp + 0x165]
push eax
movzx eax, byte [esp + 0x168]
push ecx
movzx ecx, byte [esp + 0x16b]
push edx
movzx edx, byte [esp + 0x16e]
push eax
movzx eax, byte [esp + 0x171]
push ecx
movzx ecx, byte [esp + 0x174]
push edx
movzx edx, byte [esp + 0x177]
push eax
movzx eax, byte [esp + 0x17a]
push ecx
movzx ecx, byte [esp + 0x17d]
push edx
movzx edx, byte [esp + 0x180]
push eax
push ecx
push edx
movzx eax, byte [esp + 0x18b]
movzx ecx, byte [esp + 0x18a]
movzx edx, byte [esp + 0x189]
push eax
movzx eax, byte [esp + 0x18c]
push ecx
push edx
push eax
push str._02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x
lea ecx, [esp + 0x6fc]
push 0x200
push ecx
call fcn.004c3b7b
lea edx, [esp + 0x704]
add esp, 0x10c
xor ebx, ebx
push edx
mov eax, 0x80
lea ecx, [esp + 0x44]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], 0x67452301
mov dword [esp + 0x50], 0xefcdab89
mov dword [esp + 0x54], 0x98badcfe
mov dword [esp + 0x58], 0x10325476
call fcn.00415380
add esp, 4
lea edi, [esp + 0xd8]
lea esi, [esp + 0x40]
call fcn.00415420
movzx eax, byte [esp + 0xe7]
movzx ecx, byte [esp + 0xe6]
movzx edx, byte [esp + 0xe5]
push eax
movzx eax, byte [esp + 0xe8]
push ecx
movzx ecx, byte [esp + 0xeb]
push edx
movzx edx, byte [esp + 0xee]
push eax
movzx eax, byte [esp + 0xf1]
push ecx
movzx ecx, byte [esp + 0xf4]
push edx
movzx edx, byte [esp + 0xf7]
push eax
movzx eax, byte [esp + 0xfa]
push ecx
movzx ecx, byte [esp + 0xfd]
push edx
movzx edx, byte [esp + 0x100]
push eax
movzx eax, byte [esp + 0x103]
push ecx
movzx ecx, byte [esp + 0x106]
push edx
movzx edx, byte [esp + 0x109]
push eax
movzx eax, byte [esp + 0x10c]
push ecx
push edx
push eax
push str._02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x
lea ecx, [esp + 0x63c]
push 0x200
push ecx
call fcn.004c3b7b
lea eax, [esp + 0x644]
add esp, 0x4c
lea esi, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x408960
sub eax, esi
mov ecx, eax
xor eax, eax
lea edx, [ecx*8]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], eax
push edx
lea eax, [esp + 0x5fc]
push eax
lea esi, [esp + 0x100]
mov dword [esp + 0x164], ebx
mov dword [esp + 0x160], ebx
mov byte [esp + 0x120], bl
mov dword [esp + 0x168], ebx
mov dword [esp + 0x16c], ebx
mov dword [esp + 0x170], ebx
mov dword [esp + 0x174], ebx
mov dword [esp + 0x178], ebx
mov dword [esp + 0x17c], ebx
mov dword [esp + 0x180], ebx
mov dword [esp + 0x184], ebx
mov dword [esp + 0x188], ebx
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x190], ebx
mov dword [esp + 0x194], ebx
mov dword [esp + 0x198], ebx
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], ebx
mov dword [esp + 0x1a4], ebx
call fcn.00420b90
lea ecx, [esp + 0xa0]
push ecx
mov ebx, esi
call fcn.00420d50
movzx edx, byte [esp + 0xe3]
movzx eax, byte [esp + 0xe2]
movzx ecx, byte [esp + 0xe1]
add esp, 0xc
push edx
movzx edx, byte [esp + 0xd8]
push eax
movzx eax, byte [esp + 0xdb]
push ecx
movzx ecx, byte [esp + 0xde]
push edx
movzx edx, byte [esp + 0xe1]
push eax
movzx eax, byte [esp + 0xe4]
push ecx
movzx ecx, byte [esp + 0xe7]
push edx
movzx edx, byte [esp + 0xea]
push eax
movzx eax, byte [esp + 0xed]
push ecx
movzx ecx, byte [esp + 0xf0]
push edx
movzx edx, byte [esp + 0xf3]
push eax
movzx eax, byte [esp + 0xf6]
push ecx
movzx ecx, byte [esp + 0xf9]
push edx
movzx edx, byte [esp + 0xfc]
push eax
movzx eax, byte [esp + 0xff]
push ecx
movzx ecx, byte [esp + 0x102]
push edx
movzx edx, byte [esp + 0x105]
push eax
movzx eax, byte [esp + 0x108]
push ecx
push edx
push eax
movzx ecx, byte [esp + 0x113]
push ecx
movzx edx, byte [esp + 0x116]
push edx
movzx eax, byte [esp + 0x119]
push eax
movzx ecx, byte [esp + 0x11c]
push ecx
movzx edx, byte [esp + 0x11f]
push edx
movzx eax, byte [esp + 0x122]
push eax
movzx ecx, byte [esp + 0x125]
push ecx
movzx edx, byte [esp + 0x128]
push edx
movzx eax, byte [esp + 0x12b]
push eax
movzx ecx, byte [esp + 0x12e]
push ecx
movzx edx, byte [esp + 0x131]
push edx
movzx eax, byte [esp + 0x134]
push eax
movzx ecx, byte [esp + 0x137]
push ecx
movzx edx, byte [esp + 0x13a]
movzx eax, byte [esp + 0x139]
push edx
movzx ecx, byte [esp + 0x13c]
movzx edx, byte [esp + 0x13b]
push eax
movzx eax, byte [esp + 0x13e]
push ecx
movzx ecx, byte [esp + 0x141]
push edx
movzx edx, byte [esp + 0x144]
push eax
movzx eax, byte [esp + 0x147]
push ecx
movzx ecx, byte [esp + 0x14a]
push edx
movzx edx, byte [esp + 0x14d]
push eax
movzx eax, byte [esp + 0x150]
push ecx
movzx ecx, byte [esp + 0x153]
push edx
movzx edx, byte [esp + 0x156]
push eax
movzx eax, byte [esp + 0x159]
push ecx
movzx ecx, byte [esp + 0x15c]
push edx
movzx edx, byte [esp + 0x15f]
push eax
movzx eax, byte [esp + 0x162]
push ecx
movzx ecx, byte [esp + 0x165]
push edx
movzx edx, byte [esp + 0x168]
push eax
movzx eax, byte [esp + 0x16b]
push ecx
movzx ecx, byte [esp + 0x16e]
push edx
movzx edx, byte [esp + 0x171]
push eax
movzx eax, byte [esp + 0x174]
push ecx
movzx ecx, byte [esp + 0x177]
push edx
movzx edx, byte [esp + 0x17a]
push eax
movzx eax, byte [esp + 0x17d]
push ecx
movzx ecx, byte [esp + 0x180]
push edx
movzx edx, byte [esp + 0x183]
push eax
push ecx
movzx eax, byte [esp + 0x18a]
movzx ecx, byte [esp + 0x189]
push edx
movzx edx, byte [esp + 0x18c]
push eax
push ecx
push edx
push str._02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x_02x
lea eax, [esp + 0x6fc]
push 0x200
push eax
call fcn.004c3b7b
xor eax, eax
lea ecx, [esp + 0x704]
add esp, 0x10c
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
push ecx
mov eax, 0x80
lea ecx, [esp + 0x44]
mov dword [esp + 0x4c], 0x67452301
mov dword [esp + 0x50], 0xefcdab89
mov dword [esp + 0x54], 0x98badcfe
mov dword [esp + 0x58], 0x10325476
call fcn.00415380
add esp, 4
lea edi, [esp + 0xd8]
lea esi, [esp + 0x40]
call fcn.00415420
mov esi, edi
call fcn.00404e30
movzx edx, byte [esp + 0xea]
movzx eax, byte [esp + 0xe9]
movzx ecx, byte [esp + 0xe8]
push edx
movzx edx, byte [esp + 0xeb]
push eax
movzx eax, byte [esp + 0xee]
push ecx
movzx ecx, byte [esp + 0xf1]
push edx
movzx edx, byte [esp + 0xf4]
push eax
movzx eax, byte [esp + 0xf7]
push ecx
movzx ecx, byte [esp + 0xfa]
push edx
movzx edx, byte [esp + 0xfd]
push eax
movzx eax, byte [esp + 0x100]
push ecx
movzx ecx, byte [esp + 0x103]
push edx
movzx edx, byte [esp + 0x106]
push eax
movzx eax, byte [esp + 0x109]
push ecx
movzx ecx, byte [esp + 0x10c]
push edx
movzx edx, byte [esp + 0x10f]
push eax
movzx eax, byte [esp + 0x112]
push ecx
movzx ecx, byte [esp + 0x115]
push edx
movzx edx, byte [esp + 0x118]
push eax
push ecx
push edx
push str._02X_02X_02X_02X_02X_02X_02X_02X_02X_02X_02X_02X_02X_02X_02X_02X_02X_02X_02X
lea eax, [esp + 0x148]
push pe_nt_image_headers32
push eax
call fcn.004c3b7b
mov edx, dword [esp + 0x94]
mov eax, dword [edx + 0x4cc]
lea ecx, [esp + 0x150]
push ecx
push 0x2000
push eax
call fcn.004c3b97
add esp, 0x64
mov ecx, dword [esp + 0x15fc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004c2fd1
mov esp, ebp
pop ebp
ret 4