Function at 0x430ec0
Capabilities:
Contain obfuscated stackstrings
Encode data using base64
Hide graphical window
Parse pe header
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x710
push ebx
push ebp
mov ebx, 0x63
mov dl, 0x4d
push esi
push edi
mov byte [esp + 0x8c], 0x10
mov byte [esp + 0x8d], 0x11
mov byte [esp + 0x8e], 0x12
mov byte [esp + 0x8f], 0x13
mov byte [esp + 0x90], 0x14
mov byte [esp + 0x91], 0x15
mov byte [esp + 0x92], 0x16
mov byte [esp + 0x93], 0x17
mov byte [esp + 0x94], 0x18
mov byte [esp + 0x95], 0x19
mov byte [esp + 0x96], 0x1a
mov byte [esp + 0x97], 0x1b
mov byte [esp + 0x98], bl
mov byte [esp + 0x99], 0x1c
mov byte [esp + 0x9a], bl
mov byte [esp + 0x9b], 0x1d
mov byte [esp + 0x9c], 0x1e
mov byte [esp + 0x9d], 0x1f
mov byte [esp + 0x9e], bl
mov byte [esp + 0x9f], 0x20
mov byte [esp + 0xa0], 0x21
mov byte [esp + 0xa1], 0x22
mov byte [esp + 0xa2], bl
mov byte [esp + 0xa3], bl
mov byte [esp + 0xa4], 0x23
mov byte [esp + 0xa5], bl
mov byte [esp + 0xa6], bl
mov byte [esp + 0xa7], bl
mov byte [esp + 0xa8], bl
mov byte [esp + 0xa9], bl
mov byte [esp + 0xaa], 0x24
mov byte [esp + 0xab], bl
mov byte [esp + 0xac], bl
mov byte [esp + 0xad], bl
mov byte [esp + 0xae], bl
mov byte [esp + 0xaf], bl
mov byte [esp + 0xb0], bl
mov byte [esp + 0xb1], bl
mov byte [esp + 0xb2], bl
mov byte [esp + 0xb3], bl
mov byte [esp + 0xb4], 0x25
mov byte [esp + 0xb8], 0
mov byte [esp + 0xb9], 0
mov byte [esp + 0xba], 0x2e
mov byte [esp + 0xbb], 0x2f
mov byte [esp + 0xbc], 0x30
mov byte [esp + 0xbd], 0x31
mov byte [esp + 0xbe], 0x32
mov byte [esp + 0xbf], 0x33
mov byte [esp + 0xc0], 0x34
mov byte [esp + 0xc1], 0x35
mov byte [esp + 0xc2], 0x36
mov byte [esp + 0xc3], 0x37
mov byte [esp + 0xc4], 0x38
mov byte [esp + 0xc5], 0x39
mov byte [esp + 0xc6], 0x3a
mov byte [esp + 0xc7], 0x3b
mov byte [esp + 0xc8], 0x3c
mov byte [esp + 0xc9], 0x3d
mov byte [esp + 0xca], 0x3e
mov byte [esp + 0xcb], 0x3f
mov byte [esp + 0xcc], 0x40
mov byte [esp + 0xcd], 0x41
mov byte [esp + 0xce], 0x42
mov byte [esp + 0xcf], 0x43
mov byte [esp + 0xd0], 0x44
mov byte [esp + 0xd1], 0x45
mov byte [esp + 0xd2], 0x46
mov byte [esp + 0xd3], 0x47
mov byte [esp + 0xd4], 0x48
mov byte [esp + 0xd5], 0x49
mov byte [esp + 0xd6], 0x4a
mov byte [esp + 0xd7], 0x4b
mov byte [esp + 0xd8], 0x4c
mov byte [esp + 0xd9], dl
mov al, 0x4f
mov cl, 0x4e
mov byte [esp + 0xdb], al
mov byte [esp + 0x8b], al
mov eax, dword [0x652130]
mov byte [esp + 0xda], cl
mov byte [esp + 0xdc], 0x50
mov byte [esp + 0xdd], 0x51
mov esi, dword [eax + 0x4c]
mov eax, dword [eax + 0x50]
dec esi
mov byte [esp + 0xde], 0x52
mov byte [esp + 0xdf], 0x53
mov byte [esp + 0xe0], 0x54
mov byte [esp + 0xe1], 0x55
mov byte [esp + 0xe2], 0x56
mov byte [esp + 0xe3], 0x57
mov byte [esp + 0xe4], 0x58
mov byte [esp + 0xe5], 0x59
mov byte [esp + 0xe6], 0x5a
mov byte [esp + 0xe7], 0x5b
mov byte [esp + 0xe8], 0x5c
mov byte [esp + 0xe9], 0x5d
mov byte [esp + 0xea], 0x5e
mov byte [esp + 0xeb], 0x5f
mov byte [esp + 0xec], 0x60
mov byte [esp + 0xed], 0x61
mov byte [esp + 0xee], 0x62
mov byte [esp + 0xef], bl
mov byte [esp + 0xf0], 0x64
mov byte [esp + 0xf1], 0x66
mov byte [esp + 0xf2], 0x65
mov byte [esp + 0xf3], 0x67
mov byte [esp + 0xf4], 0x68
mov byte [esp + 0xf5], 0x69
mov byte [esp + 0xf6], 0x6a
mov byte [esp + 0x68], 0x26
mov byte [esp + 0x69], 0x27
mov byte [esp + 0x6a], 0x28
mov byte [esp + 0x6b], 0x29
mov byte [esp + 0x6c], 0
mov byte [esp + 0x6d], 0
mov byte [esp + 0x6e], 0x32
mov byte [esp + 0x6f], 0x33
mov byte [esp + 0x70], 0x34
mov byte [esp + 0x71], 0x35
mov byte [esp + 0x72], 0x36
mov byte [esp + 0x73], 0x37
mov byte [esp + 0x74], 0x38
mov byte [esp + 0x75], 0x39
mov byte [esp + 0x76], 0x3a
mov byte [esp + 0x77], 0x3b
mov byte [esp + 0x78], 0x3c
mov byte [esp + 0x79], 0x3d
mov byte [esp + 0x7a], 0x3e
mov byte [esp + 0x7b], 0x3f
mov byte [esp + 0x7c], 0x40
mov byte [esp + 0x7d], 0x41
mov byte [esp + 0x7e], 0x42
mov byte [esp + 0x7f], 0x43
mov byte [esp + 0x80], 0x44
mov byte [esp + 0x81], 0x45
mov byte [esp + 0x82], 0x46
mov byte [esp + 0x83], 0x47
mov byte [esp + 0x84], 0x48
mov byte [esp + 0x85], 0x49
mov byte [esp + 0x86], 0x4a
mov byte [esp + 0x87], 0x4b
mov byte [esp + 0x88], 0x4c
mov byte [esp + 0x89], dl
mov byte [esp + 0x8a], cl
mov dword [esp + 0x64], esi
mov dword [esp + 0x5c], eax
mov edi, 0x653438
mov ebp, 4
push edi
mov byte [edi + 0x400], 1
call fcn.00429b10
add esp, 4
add edi, 0x7d0
dec ebp
jne 0x4312f7
call fcn.00407d20
call fcn.0042c7a0
test eax, eax
je 0x43132c
call fcn.00427330
call fcn.0042c7a0
test eax, eax
jne 0x43131e
lea eax, [esi + esi*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 4
mov dword [esp + 0x20], eax
mov cl, byte [eax + 0x653453]
test cl, cl
je 0x431357
mov ecx, dword [eax + 0x6539f8]
push 0
push ecx
call fcn.00401a30
add esp, 8
call fcn.00407d20
mov edx, dword [0x652130]
mov al, byte [edx + 0x4f4]
test al, al
je 0x43137a
mov eax, dword [0x64cd78]
push 0
push eax
call dword [0x485344]
push 5
push 8
push 1
call fcn.0040c310
mov ecx, dword [0x652130]
mov edx, dword [ecx + 0xed0]
push edx
call fcn.004030d0
mov eax, dword [0x652130]
add esp, 0x10
mov cl, byte [eax + 0x4a]
test cl, cl
je 0x4313b5
mov eax, dword [eax + 0xed4]
push eax
call fcn.004030d0
add esp, 4
xor ebp, ebp
mov edi, 0x653c00
mov ecx, dword [edi - 4]
push ecx
call fcn.004084a0
mov edx, dword [edi]
push edx
call fcn.004084a0
add esp, 8
cmp ebp, esi
jne 0x4313e5
mov eax, dword [edi - 4]
push 0x100
push eax
call fcn.004082a0
add esp, 8
mov ecx, dword [edi]
push 0x10
push 0x100
push 0x80
push 1
push ecx
call fcn.004082f0
add esp, 0x14
cmp ebp, esi
jne 0x431433
mov edx, dword [esp + 0x20]
mov al, byte [edx + 0x653453]
test al, al
je 0x431433
mov eax, edx
push 1
mov ecx, dword [eax + 0x6539f8]
push ecx
call fcn.00401a30
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x6539f8]
push eax
call fcn.004030d0
add esp, 0xc
inc ebp
add edi, 0x7d0
cmp ebp, 4
jl 0x4313bc
call fcn.00401950
mov ecx, dword [0x652130]
mov ebp, eax
push 0x20
mov dword [esp + 0x120], ebp
mov edx, dword [ecx + 0xec0]
push edx
call fcn.00401770
push 0
mov edi, eax
mov eax, dword [0x652130]
push 0x3ff00000
mov edx, dword [edi + 8]
push 0
mov ecx, dword [eax + 0xec0]
mov eax, dword [edi + 4]
push 0
push 0x4e20
push 0
push 0x20
push ecx
push edx
push eax
push ebp
call fcn.00401b10
push 0x20
push 0x100
push 0
push 1
push ebp
call fcn.00402a10
add esp, 0x48
call fcn.00443510
mov cx, word [edi + 8]
mov dx, word [edi + 4]
push 0x96
sub cx, 0x10a
push 0x13c
sub dx, 0xb0
push ecx
push edx
push eax
mov dword [esp + 0x34], eax
call fcn.00443540
add esp, 0x14
xor edi, edi
mov eax, dword [0x652130]
push edi
push 0x23
mov ecx, dword [eax + 0xec0]
push ecx
call fcn.004017d0
mov edx, dword [0x652130]
mov dword [esp + edi*4 + 0x1f0], eax
push edi
push 0x24
mov eax, dword [edx + 0xec0]
push eax
call fcn.004017d0
add esp, 0x18
mov dword [esp + edi*4 + 0x1bc], eax
inc edi
cmp edi, 0xa
jl 0x4314db
call fcn.00407b00
xor ebp, ebp
lea ecx, [esp + 0x120]
push ebp
mov edi, eax
push 0x4956b4
push ecx
mov dword [esp + 0x120], edi
mov dword [esp + 0x38], ebp
call dword [0x48534c]
mov eax, dword [0x652130]
add esp, 0xc
lea edx, [esp + 0x120]
mov ecx, dword [eax + 0xec0]
push edx
push ebp
push 0x3ff00000
push ebp
push 9
push ecx
call fcn.00401880
add esp, 8
lea edx, [esp + 0x1cc]
push eax
push 0x4e20
push edx
push 0x1c2
push 0x159
push edi
call fcn.00408c80
mov eax, dword [0x652130]
add esp, 0x28
cmp dword [eax + 0x28], 6
je 0x4315fe
test esi, esi
jne 0x4315fe
mov ecx, dword [eax + 0x532c]
test ecx, ecx
jne 0x4315fe
call fcn.00407b00
mov esi, eax
mov eax, dword [0x634bfc]
push eax
lea ecx, [esp + 0x124]
push str.a__d
push ecx
mov dword [esp + 0x124], esi
call dword [0x48534c]
lea edx, [esp + 0x12c]
push edx
push ebp
push 0x3ff00000
push ebp
push ebp
push 0x4e20
push 0x634a60
push 0x1ef
push 0x37
push esi
call fcn.00408c80
push 0xfffffffffffffffb
push esi
call fcn.00408460
add esp, 0x3c
push 0
push 1
push 7
call fcn.0040aa40
add esp, 0xc
call fcn.0042c7f0
call fcn.004346b0
mov eax, dword [0x652130]
cmp dword [eax + 0x2c], 1
jne 0x431628
call fcn.00436920
jmp 0x43162d
call fcn.00436930
and eax, 0xff
xor edi, edi
mov esi, eax
test esi, esi
mov dword [esp + 0x28], esi
jle 0x431653
push edi
call fcn.00436890
add esp, 4
mov byte [esp + edi + 0x148], al
inc edi
cmp edi, esi
jl 0x43163e
xor edx, edx
lea ecx, [esi - 1]
xor eax, eax
cmp ecx, edx
mov byte [esp + esi + 0x147], 1
jle 0x43167f
cmp byte [esp + eax + 0x148], 0
jne 0x431677
inc eax
cmp eax, ecx
jl 0x431666
jmp 0x43167f
mov byte [esp + esi + 0x147], 0
cmp esi, edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x60], 1
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], 0x14
mov dword [esp + 0x14], edx
jle 0x431cb2
mov dword [esp + 0xf8], 0xffffffff
mov dword [esp + 0x44], 0x96
mov dword [esp + 0x48], 0xfffffffc
mov ecx, dword [esp + 0x24]
mov al, byte [esp + ecx + 0x148]
test al, al
je 0x431c99
mov edx, dword [0x652130]
cmp dword [edx + 0x2c], 1
jne 0x43178d
mov edi, ecx
mov dword [esp + 0x30], 0x21
mov eax, edi
sub eax, 0
je 0x431763
sub eax, 4
je 0x431731
dec eax
je 0x43171a
xor eax, eax
cmp edi, 1
mov al, byte [esp + edi + 0x68]
mov dword [esp + 0x10], eax
jl 0x431712
cmp edi, 3
jle 0x4317cf
add edi, 6
jmp 0x4317cf
mov eax, dword [esp + 0x14d]
and eax, 0xff
lea edi, [eax + 3]
add eax, 0x29
jmp 0x4317cb
mov cl, byte [esp + 0x14d]
mov al, byte [esp + 0x14c]
cmp al, cl
mov eax, dword [esp + 0x14c]
jne 0x431721
and eax, 0xff
mov byte [esp + 0x14d], 0
lea edi, [eax + 7]
add eax, 0x2d
mov dword [esp + 0x10], eax
jmp 0x4317cf
cmp byte [esp + 0x148], 1
jbe 0x431781
mov eax, dword [esp + 0x148]
and eax, 0xff
lea edi, [eax + 0x28]
add eax, 0x4e
jmp 0x4317cb
xor edi, edi
mov dword [esp + 0x10], 0x26
jmp 0x4317cf
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], 0x22
mov eax, ecx
sub eax, 0
je 0x4319ed
dec eax
je 0x4317b9
xor edx, edx
lea edi, [ecx + 6]
mov dl, byte [esp + ecx + 0xb8]
mov dword [esp + 0x10], edx
jmp 0x4317cf
mov eax, dword [esp + 0x149]
and eax, 0xff
lea edi, [eax - 1]
add eax, 0x25
mov dword [esp + 0x10], eax
call fcn.00407b00
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x30]
mov ebp, dword [esp + 0x48]
mov esi, eax
mov eax, dword [edx + 0xec0]
push edi
push ecx
push eax
mov dword [esp + ebp + 0x410], esi
call fcn.004017d0
mov ecx, dword [esp + 0x2c]
mov edx, dword [0x652130]
add esp, 0xc
mov edi, eax
mov eax, dword [edx + 0xec0]
push ecx
push 0x3ff00000
push 0
push 7
push eax
call fcn.00401880
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add esp, 8
push eax
push 0x4e20
push 1
push edi
push ecx
push edx
push esi
call fcn.00408a50
push 0x40
push 0x100
push 0
push 1
push esi
call fcn.004082f0
call fcn.00401950
mov ecx, dword [0x652130]
mov edi, eax
mov eax, dword [esp + 0x5c]
mov dword [esp + ebp + 0x5d0], edi
mov edx, dword [ecx + 0xec0]
mov ecx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x54]
push 0x3ff00000
push 0
push 0
push 0x4e20
push 0
push 0x25
add eax, 0x1c
push edx
add ecx, 0xe6
push eax
push ecx
push edi
call fcn.00401b10
add esp, 0x68
push 0x40
push 0x100
push 0
push 1
push edi
call fcn.00402a10
call fcn.00407b00
mov edx, dword [esp + 0x5c]
mov ebp, eax
mov eax, dword [esp + 0x38]
push eax
mov dword [esp + edx + 0x28c], ebp
call fcn.00436940
mov ecx, dword [esp + 0x110]
mov byte [esp + ecx + 0x225], al
and eax, 0xff
push eax
mov dword [esp + 0x4c], eax
push 0x4956b0
lea edx, [esp + 0x140]
push edx
call dword [0x48534c]
mov ecx, dword [esp + 0x44]
mov edx, dword [0x652130]
add esp, 0x24
lea eax, [esp + 0x120]
push eax
mov eax, dword [edx + 0xec0]
push ecx
push 0x3ff00000
push 0
push 8
push eax
call fcn.00401880
mov edx, dword [esp + 0x2c]
add esp, 8
lea ecx, [esp + 0x1f4]
add edx, 3
push eax
mov eax, dword [esp + 0x2c]
push 0x4e20
push ecx
add eax, 0xd2
push edx
push eax
push ebp
call fcn.00408c80
push 0x40
push 0x100
push 0
push 1
push ebp
call fcn.004082f0
mov ecx, dword [0x652130]
add esp, 0x3c
cmp dword [ecx + 0x28], 5
jne 0x431997
call fcn.00440a10
cmp eax, dword [esp + 0x24]
jne 0x431997
push 5
push 0xa
push 1
push esi
call fcn.00408400
push 5
push 0xa
push 1
push edi
call fcn.00402ab0
push 5
push 0xa
push 1
push ebp
call fcn.00408400
add esp, 0x30
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x114]
add eax, esi
push eax
push 0x4956b4
push edx
mov dword [esp + 0x38], eax
call fcn.004081b0
mov eax, dword [0x652130]
add esp, 0xc
cmp dword [eax + 0x28], 6
je 0x431a45
mov ecx, dword [esp + 0x64]
test ecx, ecx
jne 0x431a45
mov ecx, dword [eax + 0x532c]
test ecx, ecx
jne 0x431a45
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
dec eax
cmp ecx, eax
mov eax, dword [0x634bfc]
jne 0x431a26
inc eax
jmp 0x431a28
mov al, byte [esp + 0x149]
mov cl, byte [esp + 0x148]
cmp cl, al
mov eax, dword [esp + 0x148]
jne 0x4317c0
and eax, 0xff
mov byte [esp + 0x149], 0
lea edi, [eax + 3]
add eax, 0x29
mov dword [esp + 0x10], eax
jmp 0x4317cf
add eax, esi
mov edx, dword [esp + 0x118]
mov ecx, eax
push ecx
push str.a__d
push edx
mov dword [0x634bfc], eax
call fcn.004081b0
add esp, 0xc
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x14]
inc ebp
sub edi, 0x1e
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0xf8]
inc ebp
add edx, 4
add ecx, 0x1e
mov dword [esp + 0xf8], ebp
test edi, edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x14], ecx
jge 0x431afa
xor esi, esi
test ebp, ebp
jle 0x431ac3
mov eax, dword [esp + esi*4 + 0x400]
push 0xffffffffffffffe2
push 0
push eax
call fcn.00408040
mov ecx, dword [esp + esi*4 + 0x59c]
push 0xffffffffffffffe2
push 0
push ecx
call fcn.004026c0
mov edx, dword [esp + esi*4 + 0x288]
push 0xffffffffffffffe2
push 0
push edx
call fcn.00408040
add esp, 0x24
inc esi
cmp esi, ebp
jl 0x431a88
mov esi, dword [esp + 0x48]
push edi
push 0
mov eax, dword [esp + esi + 0x408]
push eax
call fcn.00408040
mov ecx, dword [esp + esi + 0x59c]
push edi
push 0
push ecx
call fcn.004026c0
mov edx, dword [esp + esi + 0x288]
push edi
push 0
push edx
call fcn.00408040
add esp, 0x24
mov edi, dword [esp + 0x60]
test edi, edi
je 0x431c99
mov esi, dword [esp + 0x10]
test esi, esi
je 0x431c5c
mov eax, dword [0x652130]
push 0
mov ecx, dword [eax + 0xc]
add ecx, esi
push ecx
mov ecx, 0x6694d0
call fcn.0043d1a0
mov edx, dword [0x652130]
mov ecx, 0x6694d0
mov eax, dword [edx + 0xc]
add eax, esi
push eax
call fcn.0043d130
test eax, eax
mov ebp, 3
je 0x431b8e
cmp dword [0x634b14], ebp
jne 0x431b8e
mov eax, dword [0x66c0e0]
test eax, eax
jne 0x431b8e
call fcn.004454f0
push 1
call fcn.004234d0
add esp, 4
test eax, eax
jne 0x431b88
mov ecx, dword [0x652130]
mov edx, dword [ecx + 0xc]
mov ecx, 0x6694d0
add edx, esi
push edx
call fcn.0043d130
test eax, eax
jne 0x431b48
jmp 0x431b8e
xor edi, edi
mov dword [esp + 0x60], edi
mov eax, dword [0x652130]
mov ecx, dword [eax + 0xc]
add ecx, esi
push ecx
mov ecx, 0x6694d0
call fcn.0043d490
mov eax, dword [esp + 0x1c]
xor edx, edx
xor ecx, ecx
mov dl, byte [esp + eax + 0x20b]
mov cl, byte [esp + edx + 0x8c]
mov esi, ecx
cmp esi, ebx
je 0x431c99
test edi, edi
je 0x431c99
mov edx, dword [0x652130]
push 0
mov ecx, 0x6694d0
mov eax, dword [edx + 0xc]
add eax, esi
push eax
call fcn.0043d1a0
mov ecx, dword [0x652130]
mov edx, dword [ecx + 0xc]
mov ecx, 0x6694d0
add edx, esi
push edx
call fcn.0043d130
test eax, eax
je 0x431c44
cmp dword [0x634b14], ebp
jne 0x431c44
mov eax, dword [0x66c0e0]
test eax, eax
jne 0x431c44
call fcn.004454f0
push 1
call fcn.004234d0
add esp, 4
test eax, eax
jne 0x431c3c
mov eax, dword [0x652130]
mov ecx, dword [eax + 0xc]
add ecx, esi
push ecx
mov ecx, 0x6694d0
call fcn.0043d130
test eax, eax
jne 0x431bfd
jmp 0x431c44
mov dword [esp + 0x60], 0
mov edx, dword [0x652130]
mov ecx, 0x6694d0
mov eax, dword [edx + 0xc]
add eax, esi
push eax
call fcn.0043d490
jmp 0x431c99
mov esi, 0xf
cmp dword [0x634b14], 3
jne 0x431c99
mov eax, dword [0x66c0e0]
test eax, eax
jne 0x431c99
call fcn.004454f0
test eax, eax
je 0x431c8b
push 1
dec esi
call fcn.004234d0
add esp, 4
test eax, eax
jne 0x431c91
test esi, esi
jne 0x431c61
jmp 0x431c99
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x4316be
mov ebp, dword [esp + 0x2c]
mov esi, 0x26
lea ebx, [esp + 0x104]
call fcn.00401950
mov ecx, dword [0x652130]
mov edi, eax
push esi
mov dword [ebx], edi
mov edx, dword [ecx + 0xec0]
push edx
call fcn.00401770
mov ecx, dword [0x652130]
push 0
push 0x3ff00000
push 0
mov edx, dword [ecx + 0xec0]
mov ecx, dword [eax + 8]
push 0
push 0x4e20
push 0
push esi
push edx
mov edx, dword [eax + 4]
push ecx
push edx
push edi
call fcn.00401b10
add esp, 0x34
add ebx, 4
inc esi
lea eax, [esi - 0x26]
cmp eax, 4
jl 0x431cbe
mov ebx, dword [esp + 0x1c]
cmp ebx, 5
jg 0x431d41
lea esi, [esp + 0x104]
mov edi, 3
mov ecx, dword [esi]
push 0
push ecx
call fcn.00401a30
add esp, 8
add esi, 4
dec edi
jne 0x431d2c
jmp 0x431d88
xor esi, esi
test ebx, ebx
jle 0x431d88
lea edi, [ebx + ebx*2 - 0xf]
lea edi, [edi + edi*4]
shl edi, 1
mov edx, dword [esp + esi*4 + 0x400]
push edi
push 0
push edx
call fcn.00408040
mov eax, dword [esp + esi*4 + 0x59c]
push edi
push 0
push eax
call fcn.004026c0
mov ecx, dword [esp + esi*4 + 0x288]
push edi
push 0
push ecx
call fcn.00408040
add esp, 0x24
inc esi
cmp esi, ebx
jl 0x431d50
mov ecx, dword [0x652130]
xor eax, eax
mov dword [esp + 0x4c], eax
xor edx, edx
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x64]
mov dword [esp + 0x30], edx
mov dword [esp + 0x54], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x58], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x38], edx
cmp eax, 1
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], edx
jne 0x431eb1
cmp esi, eax
je 0x431e0d
xor eax, eax
cmp eax, esi
jne 0x431de5
mov edx, dword [ecx + 0x34]
mov edi, dword [ecx + 0x30]
imul edx, ebp
add edx, edi
mov dword [esp + eax*4 + 0x4c], ebp
mov dword [esp + eax*4 + 0x30], edx
jmp 0x431e02
cmp eax, dword [esp + 0x5c]
jne 0x431e02
mov edi, dword [ecx + 0x34]
mov edx, ebp
neg edx
imul edi, edx
mov dword [esp + eax*4 + 0x4c], edx
mov edx, dword [ecx + 0x30]
sub edi, edx
mov dword [esp + eax*4 + 0x30], edi
inc eax
cmp eax, 4
jl 0x431dcc
jmp 0x431f3b
xor eax, eax
mov al, byte [ecx + 0x49]
cmp esi, eax
mov dword [esp + 0x44], eax
jne 0x431e56
xor edi, edi
cmp edi, esi
je 0x431e4b
mov eax, dword [ecx + 0x34]
mov edx, ebp
neg edx
imul eax, edx
mov ebx, dword [ecx + 0x30]
mov dword [esp + edi*4 + 0x4c], edx
sub eax, ebx
mov ebx, dword [esp + esi*4 + 0x4c]
mov dword [esp + edi*4 + 0x30], eax
sub ebx, edx
mov edx, dword [esp + esi*4 + 0x30]
mov dword [esp + esi*4 + 0x4c], ebx
sub edx, eax
mov dword [esp + esi*4 + 0x30], edx
inc edi
cmp edi, 4
jl 0x431e1c
jmp 0x431f3b
xor edi, edi
cmp edi, esi
je 0x431ea6
cmp edi, eax
lea eax, [esp + edi*4 + 0x4c]
jne 0x431e6a
mov edx, ebp
neg edx
jmp 0x431e79
mov edx, dword [esp + 0x20c]
and edx, 0xff
sub edx, ebp
mov ebx, dword [ecx + 0x34]
mov dword [eax], edx
mov eax, edx
lea edx, [esp + edi*4 + 0x30]
imul ebx, eax
sub ebx, dword [ecx + 0x30]
mov dword [edx], ebx
mov ebx, dword [esp + esi*4 + 0x4c]
sub ebx, eax
mov eax, dword [edx]
mov edx, dword [esp + esi*4 + 0x30]
mov dword [esp + esi*4 + 0x4c], ebx
sub edx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + esi*4 + 0x30], edx
inc edi
cmp edi, 4
jl 0x431e58
jmp 0x431f3b
cmp esi, eax
jne 0x431edb
xor eax, eax
cmp eax, esi
je 0x431ed3
mov edi, dword [ecx + 0x34]
lea edx, [ebp + ebp]
imul edi, edx
mov dword [esp + eax*4 + 0x4c], edx
mov edx, dword [ecx + 0x30]
lea edx, [edi + edx*2]
mov dword [esp + eax*4 + 0x30], edx
inc eax
cmp eax, 4
jl 0x431eb7
jmp 0x431f16
xor eax, eax
cmp eax, esi
je 0x431f10
cmp eax, dword [esp + 0x5c]
jne 0x431efd
mov edi, dword [ecx + 0x34]
lea edx, [ebp + ebp]
imul edi, edx
mov dword [esp + eax*4 + 0x4c], edx
mov edx, dword [ecx + 0x30]
lea edx, [edi + edx*2]
jmp 0x431f0c
mov edx, dword [ecx + 0x34]
mov edi, dword [ecx + 0x30]
imul edx, ebp
mov dword [esp + eax*4 + 0x4c], ebp
add edx, edi
mov dword [esp + eax*4 + 0x30], edx
inc eax
cmp eax, 4
jl 0x431edd
xor ecx, ecx
lea eax, [esp + 0x30]
cmp ecx, esi
je 0x431f32
mov edx, dword [eax]
mov ebx, dword [esp + esi*4 + 0x30]
add ebx, edx
mov dword [esp + esi*4 + 0x30], ebx
mov edx, dword [eax]
neg edx
mov dword [eax], edx
inc ecx
add eax, 4
cmp ecx, 4
jl 0x431f1c
push 1
push 1
push 8
call fcn.0040aa40
xor eax, eax
mov ebp, dword [0x48534c]
mov dword [esp + 0x58], eax
add esp, 0xc
mov dword [esp + 0x50], eax
mov ebx, 0x653453
mov dword [esp + 0x54], eax
xor esi, esi
mov dword [esp + 0x58], eax
mov eax, dword [ebx + 0x7ad]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push eax
call fcn.00407fd0
call fcn.00407b00
push 0
lea ecx, [esp + 0x130]
mov edi, eax
push str.a_7d
push ecx
mov dword [esp + esi + 0x150], edi
call ebp
mov al, byte [ebx]
add esp, 0x18
test al, al
mov eax, dword [esp + 0x14]
jne 0x431faf
sub eax, 0x32
jmp 0x431fb2
add eax, 0x14
lea edx, [esp + 0x120]
mov dword [esp + 0x14], eax
mov eax, dword [0x652130]
push edx
push 0
push 0x3ff00000
mov ecx, dword [eax + 0xec0]
push 0
push 6
push ecx
call fcn.00401880
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x30]
add esp, 8
add edx, 0x59c
push eax
mov eax, dword [esp + 0x28]
push 0x4e20
push edx
push eax
push ecx
push edi
call fcn.00408c80
push 0xffffffffffffffff
push edi
call fcn.00408460
mov ecx, dword [esp + esi + 0x60]
mov eax, 0x88888889
imul ecx
add edx, ecx
add esi, 4
sar edx, 5
mov eax, edx
add esp, 0x30
shr eax, 0x1f
add edx, eax
add ebx, 0x7d0
mov dword [esp + esi + 0x1a8], edx
cmp esi, 0x10
jl 0x431f68
xor edi, edi
xor esi, esi
mov ecx, dword [esp + esi + 0x1ac]
mov edx, dword [esp + esi + 0x4c]
lea eax, [ecx + edx]
test eax, eax
mov dword [esp + esi + 0x4c], eax
push eax
jl 0x432065
mov eax, dword [esp + esi + 0x13c]
push str.a_7d
push eax
jmp 0x432072
mov ecx, dword [esp + esi + 0x13c]
push str.b_7d
push ecx
call fcn.004081b0
add esi, 4
add esp, 0xc
cmp esi, 0x10
jl 0x43203f
call fcn.004454f0
push 1
call fcn.004234d0
add esp, 4
test eax, eax
jne 0x43209b
inc edi
cmp edi, 0x3c
jl 0x43203d
push 8
call fcn.0040aa80
push 0
push 1
push 9
call fcn.0040aa40
add esp, 0x10
mov esi, 0x65343c
xor ebp, ebp
mov edi, dword [esp + ebp + 0x30]
mov ebx, dword [esp + ebp + 0x138]
test edi, edi
mov dword [esp + ebp + 0x4c], edi
push edi
jl 0x4320d2
push str.a_7d
jmp 0x4320d7
push str.b_7d
push ebx
call fcn.004081b0
add esp, 0xc
push 0x10
push 0x80
push 0x100
push 2
push ebx
call fcn.004082f0
mov eax, dword [esi]
add esp, 0x14
add eax, edi
mov dword [esi], eax
jns 0x432105
mov dword [esi], 0
mov eax, dword [esi]
test eax, eax
push eax
jl 0x43211a
mov edx, dword [esi + 0x7c4]
push str.__7d
push edx
jmp 0x432126
mov eax, dword [esi + 0x7c4]
push str.b_7d
push eax
call fcn.004081b0
add ebp, 4
add esp, 0xc
add esi, 0x7d0
cmp ebp, 0x10
jl 0x4320b7
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0xfc]
lea edx, [esp + 0x100]
push ecx
lea eax, [eax + eax*2 - 0xf]
push edx
mov dword [esp + 0x18], 0
lea eax, [eax + eax*4]
shl eax, 1
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x114]
fild dword [esp + 0x34]
push eax
fdivr qword [0x485820]
fstp qword [esp + 0x3c]
call fcn.004027f0
push 0x1e
push 9
push 0x1ea
push 0x2c3
mov dword [esp + 0x44], 0xffffffff
call fcn.004094a0
add esp, 0x1c
call fcn.004454f0
test eax, eax
je 0x4324eb
call fcn.004095b0
test eax, eax
jne 0x43250a
mov eax, dword [esp + 0x28]
xor ebp, ebp
cmp eax, ebp
jne 0x4322e4
push ebp
call fcn.004234d0
add esp, 4
test eax, eax
je 0x4322dc
call fcn.00423490
mov esi, dword [esp + 0xfc]
sub eax, esi
mov dword [esp + 0x44], eax
fild dword [esp + 0x44]
fdiv qword [esp + 0x30]
call fcn.0047ddb0
cmp eax, ebp
mov dword [esp + 0x10], eax
jge 0x432208
mov dword [esp + 0x10], ebp
jmp 0x432215
mov ecx, dword [esp + 0x2c]
dec ecx
cmp eax, ecx
jl 0x432215
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [esp + 0x30]
call fcn.0047ddb0
mov edx, dword [esp + 0x100]
add eax, esi
push eax
mov eax, dword [esp + 0x110]
push edx
push eax
call fcn.00402620
mov eax, dword [esp + 0x28]
add esp, 0xc
xor esi, esi
cmp eax, ebp
jle 0x4324eb
xor ebp, ebp
mov ebx, dword [esp + esi*4 + 0x400]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
push ecx
push edx
push ebx
call fcn.00407fd0
mov eax, dword [esp + 0x1c]
mov edi, ebp
sub edi, eax
mov eax, dword [esp + 0x24]
push edi
push eax
push ebx
call fcn.00407f90
mov ebx, dword [esp + esi*4 + 0x288]
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x30]
push ecx
push edx
push ebx
call fcn.00407fd0
mov ecx, dword [esp + 0x3c]
lea eax, [edi + 3]
push eax
push ecx
push ebx
call fcn.00407f90
mov ebx, dword [esp + esi*4 + 0x5c0]
lea edx, [esp + 0x44]
lea eax, [esp + 0x48]
push edx
push eax
push ebx
call fcn.004027f0
mov ecx, dword [esp + 0x54]
add edi, 0x1c
push edi
push ecx
push ebx
call fcn.00402620
mov eax, dword [esp + 0x64]
add esp, 0x48
inc esi
add ebp, 0x1e
cmp esi, eax
jl 0x43224d
jmp 0x4324eb
mov dword [esp + 0x28], 0xffffffff
push ebp
call fcn.004234d0
add esp, 4
test eax, eax
jne 0x4322fe
call fcn.00423520
test eax, eax
je 0x4324c7
call fcn.00423480
mov esi, eax
call fcn.00423490
mov ebx, dword [esp + 0x110]
mov edi, eax
push edi
push esi
push ebx
call fcn.00402b00
add esp, 0xc
test eax, eax
jne 0x43253c
mov ebx, dword [esp + 0x104]
push edi
push esi
push ebx
call fcn.00402b00
add esp, 0xc
test eax, eax
je 0x4323e7
mov edx, dword [0x652130]
push 0x2a
mov eax, dword [edx + 0xec0]
push eax
push ebx
call fcn.00402320
mov eax, dword [esp + 0x1c]
add esp, 0xc
cmp eax, ebp
jle 0x4324c7
sub eax, 0xa
mov dword [esp + 0x10], eax
jns 0x432371
mov dword [esp + 0x10], ebp
mov edi, dword [esp + 0x1c]
xor esi, esi
cmp edi, ebp
jle 0x4323b3
mov ecx, dword [esp + esi*4 + 0x400]
push 0xa
push ebp
push ecx
call fcn.00408040
mov edx, dword [esp + esi*4 + 0x59c]
push 0xa
push ebp
push edx
call fcn.004026c0
mov eax, dword [esp + esi*4 + 0x288]
push 0xa
push ebp
push eax
call fcn.00408040
add esp, 0x24
inc esi
cmp esi, edi
jl 0x43237b
fild dword [esp + 0x10]
fmul qword [esp + 0x30]
call fcn.0047ddb0
mov edi, dword [esp + 0xfc]
mov ecx, dword [esp + 0x100]
mov edx, dword [esp + 0x10c]
add eax, edi
push eax
push ecx
push edx
call fcn.00402620
add esp, 0xc
jmp 0x4324c7
mov ebx, dword [esp + 0x108]
push edi
push esi
push ebx
call fcn.00402b00
add esp, 0xc
test eax, eax
je 0x4324ad
mov eax, dword [0x652130]
push 0x2b
mov ecx, dword [eax + 0xec0]
push ecx
push ebx
call fcn.00402320
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
lea eax, [edx - 1]
cmp ecx, eax
jge 0x4324c7
add ecx, 0xa
cmp ecx, eax
mov dword [esp + 0x10], ecx
jle 0x43243a
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x1c]
xor esi, esi
cmp edi, ebp
jle 0x43247c
mov eax, dword [esp + esi*4 + 0x400]
push 0xfffffffffffffff6
push ebp
push eax
call fcn.00408040
mov ecx, dword [esp + esi*4 + 0x59c]
push 0xfffffffffffffff6
push ebp
push ecx
call fcn.004026c0
mov edx, dword [esp + esi*4 + 0x288]
push 0xfffffffffffffff6
push ebp
push edx
call fcn.00408040
add esp, 0x24
inc esi
cmp esi, edi
jl 0x432444
fild dword [esp + 0x10]
fmul qword [esp + 0x30]
call fcn.0047ddb0
mov ebx, dword [esp + 0xfc]
mov ecx, dword [esp + 0x10c]
add eax, ebx
push eax
mov eax, dword [esp + 0x104]
push eax
push ecx
call fcn.00402620
add esp, 0xc
jmp 0x4324c7
mov edx, dword [esp + 0x10c]
push edi
push esi
push edx
call fcn.00402b00
add esp, 0xc
test eax, eax
je 0x4324c7
mov dword [esp + 0x28], ebp
push 0x1c
call fcn.0041ba70
add esp, 4
test al, al
jne 0x43256e
push 0x39
call fcn.0041ba70
add esp, 4
test al, al
jne 0x43256c
cmp dword [0x634b14], 3
jne 0x43259d
mov eax, dword [0x66c0e0]
test eax, eax
jne 0x43259d
jmp 0x4321a2
mov eax, dword [0x652130]
mov edx, dword [esp + 0x110]
push 0x2c
mov ecx, dword [eax + 0xec0]
push ecx
push edx
call fcn.00402320
xor ebp, ebp
push ebp
push 0x3fc99999
push 0x9999999a
call fcn.00441fd0
add esp, 0x18
jmp 0x43259f
push 1
call fcn.004234d0
mov eax, dword [0x652130]
push 0x2c
mov ecx, dword [eax + 0xec0]
push ecx
push ebx
call fcn.00402320
push ebp
push 0x3fc99999
push 0x9999999a
call fcn.00441fd0
add esp, 0x1c
jmp 0x43259f
xor ebp, ebp
mov edx, dword [0x652130]
mov ecx, dword [esp + 0x110]
push 0x2c
mov eax, dword [edx + 0xec0]
push eax
push ecx
call fcn.00402320
push ebp
push 0x3fc99999
push 0x9999999a
call fcn.00441fd0
add esp, 0x18
xor ebp, ebp
call fcn.00409680
call fcn.0042cdd0
mov edx, dword [0x652130]
mov al, byte [edx + 0x4f4]
test al, al
je 0x4325c7
mov eax, dword [0x64cd78]
push 5
push eax
call dword [0x485344]
mov ecx, dword [esp + 0x114]
push ecx
call fcn.00407cb0
mov edi, dword [esp + 0x20]
add esp, 4
xor esi, esi
cmp edi, ebp
jle 0x432610
mov edx, dword [esp + esi*4 + 0x400]
push edx
call fcn.00407cb0
mov eax, dword [esp + esi*4 + 0x274]
push eax
call fcn.00407cb0
mov ecx, dword [esp + esi*4 + 0x598]
push ecx
call fcn.00401a90
add esp, 0xc
inc esi
cmp esi, edi
jl 0x4325e1
mov edx, dword [esp + 0x20]
push edx
call fcn.004436a0
mov eax, dword [esp + 0x120]
push eax
call fcn.00401a90
add esp, 8
mov edi, 0x653c00
xor esi, esi
mov ecx, dword [edi - 4]
push 0x80
push ecx
call fcn.004082a0
mov edx, dword [edi]
push 1
push edx
call fcn.00407dc0
mov eax, dword [edi]
push 8
push 0x80
push 0x100
push 2
push eax
call fcn.004082f0
mov ecx, dword [esp + esi + 0x128]
push ecx
call fcn.00401a90
mov edx, dword [esp + esi + 0x160]
push edx
call fcn.00407cb0
add esi, 4
add esp, 0x2c
add edi, 0x7d0
cmp esi, 0x10
jl 0x432631
mov eax, dword [0x652130]
cmp dword [eax + 0x28], 6
je 0x4326b8
cmp dword [esp + 0x64], ebp
jne 0x4326b8
cmp dword [eax + 0x532c], ebp
jne 0x4326b8
mov eax, dword [esp + 0x118]
push eax
call fcn.00407cb0
add esp, 4
call fcn.0040aea0
call fcn.0040c340
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret