Function at 0x409c80
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x188
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
xor edi, edi
mov dword [ebp - 0x10], ecx
mov esi, dword [ebx + 4]
xor edx, edx
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 1
mov ecx, dword [edx + esi]
movzx eax, word [ecx + 8]
cmp ax, 0x4e
je 0x409e89
cmp ax, 0x4f
je 0x409e80
cmp ax, 0x47
je 0x409e89
cmp ax, 0x48
je 0x409e80
movzx ecx, word [ecx + 8]
cmp cx, 0x41
je 0x409d1b
cmp cx, 0x52
je 0x409d1b
cmp cx, 0x53
je 0x409d1b
cmp cx, 0x54
je 0x409d1b
cmp cx, 0x55
je 0x409d1b
cmp cx, 0x56
je 0x409d1b
cmp ax, 0x7f
je 0x44247d
add edx, 4
jmp 0x409cb5
test edi, edi
jne 0x409d0c
mov eax, dword [esi]
mov ecx, 1
mov dword [ebp - 0xc], ecx
mov byte [ebp - 0x15], 0
mov dword [ebp - 0x78], 0
mov edi, dword [eax]
xor eax, eax
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], eax
cmp dword [0x4c8280], eax
je 0x40a064
cmp byte [0x4c8289], al
jne 0x4424b9
mov esi, dword [0x4c8284]
cmp dword [esi], 0
je 0x40a064
mov eax, dword [0x4c8440]
mov byte [ebp - 5], 0
test al, 1
je 0x4424c6
mov dword [0x4c8460], 0
mov dword [0x4c845c], 0
mov dword [ebp - 0x48], 0x4c8444
mov dword [ebp - 0x68], 0x4c8444
jmp 0x409da0
mov ebx, dword [esi]
mov edx, dword [edi + 4]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], edx
mov ecx, dword [ebx + 4]
test edx, edx
je 0x4424ea
test ecx, ecx
je 0x4424f2
cmp edx, ecx
jb 0x40a5b0
mov ecx, dword [ebx]
mov edi, edx
mov edx, dword [ebp - 0x14]
mov edx, dword [edx]
test edi, edi
je 0x409de4
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x409de8
add edx, 2
add ecx, 2
dec edi
jne 0x409dd3
xor eax, eax
jmp 0x409df4
movzx eax, word [edx]
cmp ax, word [ecx]
sbb eax, eax
and eax, 0xfffffffe
inc eax
test eax, eax
js 0x409e8f
jle 0x409ee6
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x1c]
test ecx, ecx
je 0x40a47e
mov ebx, dword [ecx + 4]
cmp ebx, edx
ja 0x40a4ed
mov edx, dword [edi]
mov edi, dword [ecx]
mov dword [ebp - 0x70], ebx
test ebx, ebx
je 0x409e43
lea esp, [esp]
mov ax, word [edi]
cmp ax, word [edx]
jne 0x409e4a
add edi, 2
add edx, 2
dec dword [ebp - 0x70]
jne 0x409e30
cmp ebx, dword [ebp - 0x20]
jb 0x409e4c
jmp 0x409e66
jae 0x409e66
mov edx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x18]
mov dword [edx + 0x1c], eax
mov eax, dword [esi]
mov dword [ecx + 0x18], eax
mov dword [esi], ecx
cmp dword [ecx + 0x1c], 0
je 0x40a47e
mov ecx, dword [ebp - 0x68]
mov eax, dword [esi]
mov dword [ecx + 0x1c], eax
mov edi, dword [esi]
mov dword [ebp - 0x68], edi
mov eax, dword [edi + 0x1c]
mov edi, dword [ebp - 0x14]
mov dword [esi], eax
jmp 0x409da0
dec edi
add edx, 4
jmp 0x409cb5
inc edi
jmp 0x409d16
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x40a47e
mov eax, dword [ecx + 4]
cmp edx, eax
ja 0x40a4f4
cmp dword [ebp - 0x20], 0
mov ebx, edx
mov edx, dword [ecx]
mov edi, dword [edi]
jbe 0x409ed8
jmp 0x409ec0
mov ax, word [edi]
cmp ax, word [edx]
jne 0x40a157
add edi, 2
add edx, 2
dec ebx
jne 0x409ec0
mov eax, dword [ecx + 4]
cmp dword [ebp - 0x20], eax
jb 0x40a159
jmp 0x40a173
mov dl, 1
mov eax, dword [esi]
mov ecx, dword [ebp - 0x68]
mov eax, dword [eax + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [esi]
mov ecx, dword [ebp - 0x48]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4c8460]
mov dword [ecx + 0x18], eax
mov ecx, dword [esi]
mov eax, dword [0x4c845c]
mov dword [ecx + 0x1c], eax
test dl, dl
je 0x40a061
mov esi, dword [esi]
test esi, esi
je 0x40a061
mov eax, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
and eax, 0xff00
mov dword [ebp - 0x54], eax
test esi, esi
je 0x40a061
mov dword [ebp - 0x48], esi
test esi, esi
je 0x40a737
test eax, 0x100
jne 0x442541
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx + edx*4]
cmp word [eax + 8], 0x4e
je 0x40a1c0
mov eax, dword [edi + 4]
mov eax, dword [eax + edx*4]
movzx edi, word [eax + 8]
cmp di, 0x35
je 0x44279d
mov eax, dword [esi + 0xc]
cmp eax, 8
je 0x4427b4
cmp eax, 0xc
je 0x4427b4
cmp eax, 0xf
je 0x4427b4
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 4]
mov eax, dword [eax + edx*4]
movzx ecx, word [eax + 8]
movsx edi, word [eax + 8]
cmp cx, 0x41
jne 0x40a5fd
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x64]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0xc]
inc edx
push eax
push ebx
mov dword [ebp - 0xc], edx
call fcn.004053b0
test eax, eax
js case.default.0x40a618
cmp byte [ebp - 0x15], 0
jne 0x40a337
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0xc]
mov eax, dword [ecx + eax*4]
cmp word [eax + 8], 0x7f
jne 0x442aea
test esi, esi
je 0x40a73f
cmp edi, 0x41
jne 0x40a60c
lea eax, [ebp - 0x64]
cmp esi, eax
je case.default.0x40a618
cmp dword [esi + 0xc], 4
je 0x40a62f
mov edi, dword [esi + 8]
test edi, edi
jne 0x40a664
mov eax, dword [esi + 0xc]
cmp eax, 5
jge 0x40a705
lea eax, [ebp - 0x64]
mov dword [esi + 0xc], 1
push eax
mov ecx, esi
mov dword [esi], 0
call fcn.00404e60
mov esi, dword [ebp - 0x5c]
test esi, esi
jne 0x40a5d7
mov eax, dword [ebp - 0x58]
cmp eax, 5
jge 0x40a6d8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 0x14]
mov ebx, dword [0x4c8270]
mov dword [ebp - 0x20], ebx
test ebx, ebx
je 0x40a72d
mov eax, dword [0x4c8440]
mov byte [ebp - 5], 0
test al, 1
je 0x4424ff
mov dword [0x4c8460], 0
mov dword [0x4c845c], 0
mov dword [ebp - 0x68], 0x4c8444
mov dword [ebp - 0x48], 0x4c8444
mov edi, dword [edi + 4]
mov ecx, dword [ebx + 4]
test edi, edi
je 0x44252c
test ecx, ecx
je 0x442534
mov eax, dword [ebp - 0x14]
cmp edi, ecx
jb 0x40a18d
mov ecx, dword [ebx]
mov esi, edi
mov edx, dword [eax]
test esi, esi
je 0x40a0e8
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x40a1ac
add edx, 2
add ecx, 2
dec esi
jne 0x40a0d3
xor eax, eax
test eax, eax
js 0x40a486
jg 0x40a523
mov byte [ebp - 5], 1
cmp byte [ebp - 5], 0
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebx + 0x18]
mov dword [ecx + 0x1c], eax
mov eax, dword [0x4c8270]
mov ecx, dword [ebp - 0x68]
mov eax, dword [eax + 0x1c]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4c8270]
mov eax, dword [0x4c8460]
mov dword [ecx + 0x18], eax
mov ecx, dword [0x4c8270]
mov eax, dword [0x4c845c]
mov dword [ecx + 0x1c], eax
je 0x40a72d
mov esi, dword [0x4c8270]
test esi, esi
je 0x40a72d
mov eax, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
and eax, 0xff00
jmp 0x409f3a
jae 0x40a173
mov edx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x1c]
mov dword [edx + 0x18], eax
mov eax, dword [esi]
mov dword [ecx + 0x1c], eax
mov dword [esi], ecx
cmp dword [ecx + 0x18], 0
je 0x40a47e
mov ecx, dword [ebp - 0x48]
mov eax, dword [esi]
mov edi, dword [ebp - 0x14]
mov dword [ecx + 0x18], eax
mov eax, dword [esi]
mov dword [ebp - 0x48], eax
mov eax, dword [eax + 0x18]
mov dword [esi], eax
jmp 0x409da0
mov edx, dword [ebx]
mov esi, dword [eax]
test ecx, ecx
je 0x40a0e8
lea esp, [esp]
mov ax, word [esi]
cmp ax, word [edx]
je 0x40a652
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x40a0ea
mov eax, dword [esi + 0xc]
cmp eax, 5
jne 0x44276a
mov eax, edx
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], 0
xor ebx, ebx
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x50], eax
mov eax, dword [ecx + edx*4 - 4]
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x48], ebx
movsx eax, word [eax + 0xa]
mov dword [ebp - 0x1c], eax
mov eax, dword [ecx + edx*4]
cmp word [eax + 8], 0x4e
jne 0x40a292
mov eax, dword [ecx + edx*4 + 4]
inc edx
mov ecx, dword [ebp - 0x10]
push 0xffffffffffffffff
mov dword [ebp - 0xc], edx
movsx eax, word [eax + 0xa]
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0xc]
push eax
push edi
call fcn.004053b0
test eax, eax
js 0x40a790
mov edi, dword [ebp - 0x28]
cmp edi, 1
jne 0x442560
mov ebx, dword [ebp - 0x34]
mov eax, ebx
test eax, eax
js 0x40a77c
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx + 4]
mov eax, dword [eax + edx*4]
cmp word [eax + 8], 0x4f
jne 0x4427e3
inc edx
mov dword [ebp - 0xc], edx
cmp edi, 1
jne 0x4425fe
mov eax, dword [ebp - 0x48]
mov edi, dword [ebp + 8]
mov dword [ebp + eax*4 - 0x184], ebx
mov ebx, eax
mov ecx, dword [edi + 4]
inc ebx
mov dword [ebp - 0x48], ebx
mov eax, dword [ecx + edx*4]
cmp word [eax + 8], 0x4e
je 0x40a207
cmp dword [esi + 0xc], 5
jne 0x40a775
mov edx, dword [esi]
mov eax, dword [edx]
xor ecx, ecx
mov dword [eax + 0x210], 0
test ebx, ebx
jle 0x40a2d8
mov esi, dword [edx]
mov edi, dword [esi + 0x210]
cmp edi, 0x40
jge 0x40a2d3
mov eax, dword [ebp + ecx*4 - 0x184]
mov dword [esi + edi*4 + 0x110], eax
mov eax, dword [edx]
inc dword [eax + 0x210]
inc ecx
cmp ecx, ebx
jl 0x40a2b0
push 0
push 1
push edx
call fcn.00404230
mov esi, eax
add esp, 0xc
mov dword [ebp - 0x48], esi
test esi, esi
je 0x40a786
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
jne 0x4426a9
mov eax, dword [ebp - 0x28]
cmp eax, 5
jge 0x4426bb
mov edi, dword [ebp + 8]
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x15], 1
mov ecx, dword [edi + 4]
mov edx, dword [ebp - 0xc]
mov eax, dword [ecx + edx*4]
cmp word [eax + 8], 0x4e
jne 0x409f67
jmp 0x40a1c0
mov ecx, dword [ebx + 4]
xor esi, esi
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 1
mov eax, dword [ecx + edx*4 - 4]
mov dword [ebp - 0x20], esi
movsx eax, word [eax + 0xa]
mov dword [ebp - 0x70], eax
mov eax, dword [ecx + edx*4]
cmp word [eax + 8], 0x4e
jne 0x40a3f9
mov eax, dword [ecx + edx*4 + 4]
inc edx
mov ecx, dword [ebp - 0x10]
push 0xffffffffffffffff
mov dword [ebp - 0x54], edx
movsx eax, word [eax + 0xa]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.004053b0
test eax, eax
js 0x40a79f
mov esi, dword [ebp - 0x38]
cmp esi, 1
jne 0x4428b0
mov ebx, dword [ebp - 0x44]
mov eax, ebx
test eax, eax
js 0x4427fe
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x54]
mov eax, dword [ecx + 4]
mov eax, dword [eax + edx*4]
cmp word [eax + 8], 0x4f
jne 0x4429f9
inc edx
mov dword [ebp - 0x50], edx
cmp esi, 1
jne 0x442954
mov esi, dword [ebp - 0x20]
mov dword [ebp + esi*4 - 0x184], ebx
inc esi
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x20], esi
mov ecx, dword [ebx + 4]
mov eax, dword [ecx + edx*4]
cmp word [eax + 8], 0x4e
je 0x40a370
mov eax, dword [ebp - 0x78]
cmp dword [eax + 0xc], 5
jne 0x40a798
mov edx, dword [eax]
mov eax, dword [edx]
xor ecx, ecx
mov dword [eax + 0x210], 0
test esi, esi
jle 0x40a44b
mov eax, dword [ebp - 0x20]
lea ecx, [ecx]
mov esi, dword [edx]
mov ebx, dword [esi + 0x210]
cmp ebx, 0x40
jge 0x40a446
mov eax, dword [ebp + ecx*4 - 0x184]
mov dword [esi + ebx*4 + 0x110], eax
mov eax, dword [edx]
inc dword [eax + 0x210]
mov eax, dword [ebp - 0x20]
inc ecx
cmp ecx, eax
jl 0x40a420
push 0
push 2
push edx
call fcn.00404230
mov esi, eax
add esp, 0xc
test esi, esi
je 0x442a17
mov ecx, dword [ebp - 0x3c]
test ecx, ecx
jne 0x442a29
mov eax, dword [ebp - 0x38]
cmp eax, 5
jl 0x409fd9
jmp 0x442a3b
mov dl, byte [ebp - 5]
jmp 0x409ee8
mov esi, dword [ebx + 0x18]
lea eax, [ebx + 0x18]
mov dword [ebp - 0x1c], eax
test esi, esi
je 0x40a0fc
mov eax, dword [esi + 4]
cmp edi, eax
ja 0x40a6a5
mov edx, dword [ebp - 0x14]
mov ebx, edi
mov ecx, dword [esi]
mov edx, dword [edx]
test edi, edi
je 0x40a4c4
nop
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x40a4fe
add edx, 2
add ecx, 2
dec ebx
jne 0x40a4b0
mov eax, dword [esi + 4]
cmp edi, eax
jb 0x40a500
mov ebx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x68]
mov edi, dword [ebp - 0x14]
mov dword [ecx + 0x18], ebx
mov eax, dword [0x4c8270]
mov dword [ebp - 0x68], eax
mov ebx, dword [eax + 0x18]
mov dword [ebp - 0x20], ebx
mov dword [0x4c8270], ebx
jmp 0x40a0a8
mov ebx, edx
jmp 0x409e1e
mov edx, eax
mov dword [ebp - 0x20], eax
jmp 0x409eab
jae 0x40a4c8
mov ecx, dword [ebp - 0x1c]
mov ebx, esi
mov eax, dword [ebx + 0x1c]
mov dword [ecx], eax
mov eax, dword [0x4c8270]
mov dword [ebx + 0x1c], eax
mov dword [0x4c8270], ebx
cmp dword [ebx + 0x18], 0
jne 0x40a4cb
jmp 0x40a0fc
lea eax, [ebx + 0x1c]
mov ebx, dword [eax]
mov dword [ebp - 0x70], eax
test ebx, ebx
je 0x40a76d
mov eax, dword [ebx + 4]
mov dword [ebp - 0x1c], eax
cmp eax, edi
ja 0x40a69b
mov edx, dword [ebp - 0x14]
mov esi, eax
mov ecx, dword [edx]
mov edx, dword [ebx]
test eax, eax
je 0x40a564
mov edi, edi
mov ax, word [edx]
cmp ax, word [ecx]
jne 0x40a589
add edx, 2
add ecx, 2
dec esi
jne 0x40a550
mov eax, dword [ebp - 0x1c]
cmp eax, edi
jae 0x40a58b
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebx + 0x18]
mov dword [ecx], eax
mov eax, dword [0x4c8270]
mov dword [ebx + 0x18], eax
mov dword [0x4c8270], ebx
cmp dword [ebx + 0x1c], 0
jne 0x40a58e
jmp 0x40a0fc
jb 0x40a568
mov ebx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x14]
mov dword [ecx + 0x1c], ebx
mov eax, dword [0x4c8270]
mov dword [ebp - 0x48], eax
mov ebx, dword [eax + 0x1c]
mov dword [ebp - 0x20], ebx
mov dword [0x4c8270], ebx
jmp 0x40a0a8
mov edx, dword [ebx]
mov edi, dword [edi]
test ecx, ecx
je 0x409de4
lea esp, [esp]
mov ax, word [edi]
cmp ax, word [edx]
je 0x40a6c6
movzx eax, ax
cmp ax, word [edx]
jmp 0x409dee
mov eax, dword [esi + 0xc]
dec dword [eax]
mov eax, dword [esi + 0xc]
cmp dword [eax], 0
je 0x40a6ac
push esi
call fcn.0042105c
add esp, 4
mov dword [ebp - 0x5c], 0
jmp 0x40a04c
cmp cx, 0x52
je 0x409fb4
jmp 0x442871
add edi, 0xffffffae
cmp edi, 4
ja case.default.0x40a618
jmp dword [edi*4 + 0x40a7a8]
lea eax, [ebp - 0x64]
mov ecx, esi
push eax
call fcn.00404aa0
jmp case.default.0x40a618
cmp dword [ebp - 0x58], 4
jne 0x40a012
mov ecx, dword [esi + 8]
mov esi, dword [ebp - 0x5c]
cmp ecx, esi
je case.default.0x40a618
push esi
call fcn.00411bcc
jmp case.default.0x40a618
add esi, 2
add edx, 2
dec ecx
jne 0x40a1a0
jmp 0x40a0e8
mov eax, dword [edi + 0xc]
dec dword [eax]
mov eax, dword [edi + 0xc]
cmp dword [eax], 0
jne 0x40a686
push dword [edi]
call fcn.0042105c
add esp, 4
push dword [edi + 0xc]
call fcn.0042105c
add esp, 4
push edi
call fcn.0042105c
add esp, 4
mov dword [esi + 8], 0
jmp 0x40a01d
mov eax, edi
mov dword [ebp - 0x1c], edi
jmp 0x40a541
mov edi, eax
jmp 0x40a4a2
push dword [esi]
call fcn.0042105c
add esp, 4
push dword [esi + 0xc]
call fcn.0042105c
add esp, 4
jmp 0x40a5e8
add edi, 2
add edx, 2
dec ecx
jne 0x40a5c0
jmp 0x409de4
add eax, 0xfffffffb
cmp eax, 0xa
ja case.0x40a6e4.6
jmp dword [eax*4 + 0x40a7bc]
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je case.0x40a6e4.6
push ecx
call fcn.004041c4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
sub eax, 5
cmp eax, 0xa
ja case.0x40a711.6
jmp dword [eax*4 + 0x40a7e8]
mov ecx, dword [esi]
test ecx, ecx
je case.0x40a711.6
push ecx
call fcn.004041c4
jmp case.0x40a711.6
mov eax, dword [ebp - 0x54]
xor esi, esi
jmp 0x409f3a
mov edx, dword [ebp - 0xc]
jmp 0x409f99
mov edx, dword [ebp - 0x10]
cmp byte [edx + 0xff], 0
jne 0x442afe
cmp edi, 0x41
jne 0x442afe
push 0
push 0
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x14]
call fcn.004039be
jmp case.default.0x40a618
mov ebx, dword [ebp - 0x20]
jmp 0x40a0fc
xor edx, edx
jmp 0x40a29e
push dword [ebp - 0x54]
push 0x7b
jmp 0x4427f1
push dword [ebp - 0x1c]
push 0x7a
jmp 0x4427f1
lea ecx, [ebp - 0x34]
jmp 0x44280e
xor edx, edx
jmp 0x40a408
lea ecx, [ebp - 0x44]
jmp 0x44280e
sbb al, 0x8b
add al, 0x98
add byte [eax], al
add bl, bl
test byte [eax + ebx*4], ah
add byte [eax], al
add byte [ebp - 0x23f98637], al
add eax, 0x4bcac8
and dword [esp + 0x6c], 0
lea eax, [esp + 0x64]
push 3
pop edi
push 0
push ebx
push eax
push esi
fstp qword [esp + 0x74]
mov dword [esp + 0x80], edi
call fcn.004043d0
add esp, 0x1c
lea ecx, [esp + 0x58]
call fcn.00404dc0
fild qword [esp + 0x90]
push ebx
push ebx
lea eax, [esp + 0x40]
push eax
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
fmul qword [0x4a5bd8]
and dword [esp + 0x4c], 0
push esi
mov dword [esp + 0x54], edi
fstp qword [esp + 0x48]
call fcn.004043d0
add esp, 0x10
lea ecx, [esp + 0x38]
call fcn.00404dc0
fild qword [esp + 0x98]
push 2
push ebx
lea eax, [esp + 0x80]
push eax
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
fmul qword [0x4a5bd8]
and dword [esp + 0x8c], 0
push esi
mov dword [esp + 0x94], edi
fstp qword [esp + 0x88]
call fcn.004043d0
add esp, 0x10
lea ecx, [esp + 0x78]
call fcn.00404dc0
fild qword [esp + 0xa0]
push edi
push ebx
lea eax, [esp + 0x20]
push eax
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
fmul qword [0x4a5bd8]
and dword [esp + 0x2c], 0
push esi
mov dword [esp + 0x34], edi
fstp qword [esp + 0x28]
call fcn.004043d0
add esp, 0x10
lea ecx, [esp + 0x18]
call fcn.00404dc0
fild qword [esp + 0xa8]
push 4
push ebx
lea eax, [esp + 0x30]
push eax
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
fmul qword [0x4a5bd8]
and dword [esp + 0x3c], 0
push esi
mov dword [esp + 0x44], edi
fstp qword [esp + 0x38]
call fcn.004043d0
add esp, 0x10
lea ecx, [esp + 0x28]
call fcn.00404dc0
fild qword [esp + 0xb0]
fstp qword [esp + 0x10]
fld qword [esp + 0x10]
fmul qword [0x4a5bd8]
lea eax, [esp + 0x48]
and dword [esp + 0x50], 0
push 5
push ebx
push eax
push esi
fstp qword [esp + 0x58]
mov dword [esp + 0x64], edi
call fcn.004043d0
add esp, 0x10
lea ecx, [esp + 0x48]
call fcn.00404dc0
fild qword [esp + 0xb8]
push 6
push ebx
lea eax, [esp + 0x70]
push eax
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
fmul qword [0x4a5bd8]
and dword [esp + 0x7c], 0
push esi
mov dword [esp + 0x84], edi
fstp qword [esp + 0x78]
call fcn.004043d0
add esp, 0x10
lea ecx, [esp + 0x68]
call fcn.00404dc0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.00426a70
fdiv qword [ebp - 8]
add ah, bl
jne 0x40e2d8
mov edi, dword [ebp + 0xc]
pop ecx
pop ecx
mov ecx, edi
fstp qword [ebp - 8]
call fcn.00404dc0
fld qword [ebp - 8]
fstp qword [edi]
mov dword [edi + 0xc], 3
cmp dword [esi + 8], 1
je 0x445614
pop edi
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 8
stosb byte es:[edi], al
insb byte es:[edi], dx
invalid
in al, dx
and esp, 0xfffffff8
sub esp, 0x8c
push ebx
mov ebx, dword [ebp + 8]
lea ecx, [esp + 0x14]
push esi
push edi
push 0x400
mov edi, dword [ebx + 8]
call fcn.0041162d
mov esi, 0x20000
push esi
call fcn.00420fe6
pop ecx
push eax
lea ecx, [esp + 0x5c]
call fcn.0041433f
push esi
call fcn.00420fe6
pop ecx
push eax
lea ecx, [esp + 0x40]
call fcn.0041433f
mov eax, dword [ebx + 4]
mov esi, dword [eax]
mov ecx, esi
call fcn.00404d37
mov ebx, dword [esi + 8]
lea ecx, [esp + 0x44]
call fcn.00411207
lea ecx, [esp + 0x60]
call fcn.004110c3
push 0x493af8
lea ecx, [esp + 0x30]
call fcn.00411a36
push ecx
lea eax, [esp + 0x30]
add byte [ebx + 0x1f88303], cl
mov word [esi], cx
push edi
inc ebx
push ecx
and edx, ebx
mov ecx, eax
call fcn.0047ed57
mov ecx, eax
add esp, 0xc
cmp ecx, 0xfffffffd
jne 0x44249e
mov dword [edi + 0x74], ebx
jmp 0x40df34
test ecx, ecx
js 0x4424b6
cmp ecx, dword [edi + 0x48]
jle 0x4424aa
mov dword [edi + 0x48], ecx
mov eax, dword [esp + 0x4c]
mov word [eax], cx
jmp 0x40df34
cmp ecx, 0xfffffffe
jne 0x4424c0
push 0x24
pop eax
jmp 0x4424cf
xor eax, eax
cmp ecx, 0xfffffffc
setne al
dec eax
and eax, 0x2d
add eax, 0x19
xchg ebp, eax
ror byte [eax - 0x7d], 0xe0
sub eax, 0x8b19c083
dec ebp
or al, 0x89
add dword [ebx + 0x448b084d], ecx
and al, 0x28
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x28]
mov dword [ecx], eax
mov word [esi], ax
mov eax, dword [esp + 0x24]
shr eax, 0xb
push edi
and eax, 1
push eax
push 2
pop edx
call fcn.0040f6bb
mov ecx, dword [esp + 0x48]
call 0xe0c77c02
add dword [eax + 0x6a], edx
add bl, byte [edx - 0x18]
mov edx, 0x8bfffcd1
dec esp
and al, 0x48
cld
dec dword [ebx - 0x7cb7dbb4]
les ecx, [ebx + ecx*4]
invalid
add esp, 0xc
mov eax, esi
sub eax, ecx
and eax, 0xfffffffe
push eax
push ecx
lea eax, [ecx + 4]
push eax
call fcn.00418410
mov ecx, dword [esp + 0x48]
mov eax, 0x81
add esp, 0xc
mov word [ecx], ax
lea eax, [esi + 4]
sub eax, ecx
mov ecx, dword [esp + 0x64]
sar eax, 1
push 0x78
mov word [ecx], ax
pop ecx
mov word [esi + 4], cx
mov ecx, dword [esp + 0x10]
mov word [esi + 6], ax
adc byte [esi - 0x77], ah
inc esi
push es
add esi, 8
add ecx, 4
jmp 0x40e057
mov dword [ebp - 4], esi
mov dword [ebp - 0x60], eax
movzx edi, word [esi]
mov dword [ebp - 0x18], edi
jmp 0x40e2dc
cmp edi, ebx
sti
ja 0x44261c
mov eax, dword [ecx + 0xc]
push 2
pop edx
test byte [eax + edi], 1
je 0x442619
add esi, edx
mov dword [ebp - 4], esi
movzx edi, word [esi]
cmp edi, ebx
jbe 0x442607
mov dword [ebp - 0x18], edi
push 0x23
pop eax
cmp edi, eax
jne 0x4426d3
push 2
pop edx
jmp 0x4426c0
mov edx, dword [ecx + 0x80]
test edx, edx
je 0x44266d
cmp esi, dword [ecx + 0x1c]
jae 0x44269d
push dword [ebp - 0x3c]
lea eax, [ecx + 0x84]
push eax
push dword [ecx + 0x1c]
mov ecx, esi
call fcn.00410116
mov ecx, dword [ebp + 0x28]
add esp, 0xc
test eax, eax
je 0x44269d
mov eax, dword [ecx + 0x84]
lea esi, [esi + eax*2]
mov dword [ebp - 4], esi
movzx edi, word [esi]
jmp 0x4425fd
mov edx, dword [ecx + 0x84]
mov ecx, dword [ecx + 0x1c]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
mov ecx, dword [ebp + 0x28]
ja 0x44269d
cmp di, word [ecx + 0x88]
jne 0x44269d
cmp edx, dword [ebp - 0xc]
je 0x44265c
mov ax, word [esi + 2]
cmp ax, word [ecx + 0x8a]
je 0x44265c
push 2
pop edx
add esi, edx
cmp dword [ebp - 0x3c], 0
mov dword [ebp - 4], esi
je 0x4426c5
mov ax, word [esi]
mov edi, 0xfc00
and ax, di
mov edi, 0xdc00
cmp ax, di
jne 0x4426c5
add esi, edx
mov dword [ebp - 4], esi
movzx edi, word [esi]
test di, di
jne 0x44262f
jmp 0x442668
mov ebx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x18], edi
jmp 0x40e37d
jb 0x442784
sar esi, 1
xor edx, edx
mov word [eax + 2], dx
lea edx, [eax + 4]
mov word [eax], si
mov esi, dword [ebp - 4]
mov dword [ebp - 8], edx
jmp 0x40e3c8
jmp [edx + 4]
cmp ax, dx
je 0x4427aa
add esi, ebx
mov dword [ebp - 4], esi
movzx eax, word [esi]
test ax, ax
jne 0x442798
cmp word [esi], cx
jne 0x4427d2
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x12
adc al, byte [eax]
add byte [eax], al
jmp 0x44500a
mov dword [ebp - 0x68], ebx
cmp ax, di
je 0x44280d
mov edi, 0xff
cmp ax, di
cmp eax, edi
ja 0x40e928
mov ecx, eax
mov eax, dword [ebp + 0x28]
mov eax, dword [eax + 0xc]
test byte [ecx + eax], 2
je 0x442a0f
xor ecx, ecx
mov esi, ebx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], esi
mov edi, 0xff
mov edx, 0x4b87d0
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x24], edx
movzx eax, word [esi]
mov dword [ebp - 0x10], ecx
cmp ax, di
ja 0x442852
mov ecx, dword [ebp + 0x28]
push 2
pop edx
mov ecx, dword [ecx + 0xc]
movzx eax, ax
test byte [eax + ecx], 2
je 0x44284f
add esi, edx
mov dword [ebp - 4], esi
movzx eax, word [esi]
cmp ax, di
jbe 0x442839
mov edx, dword [ebp - 0x24]
mov eax, esi
sub eax, ebx
push 0x3a
sar eax, 1
pop ecx
mov dword [ebp - 0x38], eax
cmp word [esi], cx
jne 0x4428a5
push 2
pop ecx
add esi, ecx
mov dword [ebp - 4], esi
mov edi, esi
mov dword [ebp - 0x1c], edi
movzx eax, word [esi]
mov bh, 6
test ax, ax
je 0x44288d
push 0x29
pop ebx
cmp ax, bx
je 0x44288d
add esi, ecx
mov dword [ebp - 4], esi
movzx eax, word [esi]
test ax, ax
jne 0x44287b
mov ecx, esi
sub ecx, edi
sar ecx, 1
mov dword [ebp - 0x14], ecx
cmp ecx, 0xffff
ja 0x444eb1
mov eax, dword [ebp - 0x38]
push 0x29
pop ecx
cmp word [esi], cx
jne 0x442a08
add byte [ebx], dh
leave
xor ecx, ecx
mov ebx, 0x4b8700
mov dword [ebp - 0x18], ecx
mov edi, dword [ebx]
cmp eax, edi
jne 0x4428d8
mov ecx, dword [ebp - 0x68]
push eax
call fcn.0040f3af
pop ecx
test eax, eax
je 0x4428f2
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
inc edx
add ebx, 0xc
add edx, edi
inc ecx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], ecx
cmp ebx, 0x4b876c
jl 0x4428bb
jmp 0x4429fc
imul eax, dword [ebp - 0x18], 0xc
mov edi, 0x9e
mov ecx, dword [eax + 0x4b8704]
cmp ecx, edi
jne 0x442964
cmp dword [ebp - 0x14], 0
jne 0x444ebf
mov ebx, dword [ebp + 0x28]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov ecx, dword [ebx + 0x24]
mov dword [ebx + 0x6c], eax
test ecx, ecx
je 0x44293e
push 2
pop esi
mov eax, 0xa0
mov word [edx], ax
add edx, esi
mov ax, word [ecx + 4]
mov word [edx], ax
add edx, esi
mov ecx, dword [ecx]
test ecx, ecx
jne 0x442925
xor eax, eax
xor ecx, ecx
cmp dword [ebx + 0x5c], ecx
push 2
setg al
add eax, edi
mov word [edx], ax
movzx esi, ax
pop eax
add edx, eax
cmp dword [ebp - 0x2c], 0xfffffffe
mov dword [ebp - 8], edx
rol byte [ebx - 0x76012b83], 1
push ebp
clc
jne 0x4429d2
or dword [ebp - 0x2c], 0xffffffff
jmp 0x4429d2
mov ebx, dword [ebp - 0x14]
test ebx, ebx
jne 0x442988
test ecx, ecx
js 0x444ecd
movzx eax, cx
mov ecx, dword [ebp - 8]
mov esi, eax
push 2
mov word [ecx], ax
pop eax
add ecx, eax
mov dword [ebp - 8], ecx
jmp 0x4429cf
xor ecx, ecx
cmp dword [eax + 0x4b8708], ecx
jl 0x444ebf
movzx eax, word [eax + 0x4b8708]
mov edi, dword [ebp - 8]
mov esi, eax
push 2
mov word [edi], ax
pop eax
add edi, eax
mov word [edi], bx
add edi, eax
lea eax, [ebx + ebx]
push eax
push dword [ebp - 0x1c]
push edi
call fcn.00411470
add esp, 0xc
lea edi, [edi + ebx*2]
xor eax, eax
mov word [edi], ax
push 2
pop eax
add edi, eax
mov dword [ebp - 8], edi
mov ebx, dword [ebp + 0x28]
cmp esi, 0x96
jl 0x4429f9
cmp esi, 0x99
jle 0x4429f3
cmp esi, 0x9b
jg 0x4429f9
or dword [ebx + 0x64], 0x1000
jmp 0x4429f9
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x70], eax
mov esi, dword [ebp - 4]
push 9
pop eax
cmp dword [ebp - 0x18], eax
jl 0x4427d2
push 0x3c
jmp fcn.00444fd6
xor ecx, ecx
jmp 0x40e928
test byte [edx + 5], dl
add byte [eax], al
cmp eax, 0x28
jg 0x442f39
je 0x442aea
add byte [eax], al
sub eax, 0x21
je case.0x441cdf.98
sub eax, 5
je 0x442a41
dec eax
je 0x443078
add cl, ch
popfd
ret 0xfffc
jmp 0x40ecde
push 0x29
pop eax
mov ebx, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
jmp 0x442a56
mov edx, dword [ebp + 0xc]
jmp 0x444112
push 0x3f
pop eax
mov ebx, 0x87
mov edx, esi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x70], edx
cmp word [esi + 2], ax
jne 0x442b3d
push 0x43
pop ecx
cmp word [esi + 4], cx
jne 0x442b3d
movzx eax, word [esi + 6]
push 3
pop ecx
push 0x30
pop edi
jmp case.0x40a618.84
cmp ax, word [ebp - 0x90]
ja 0x442b28
inc ecx
movzx eax, word [esi + ecx*2]
cmp ax, di
jae 0x442b15
push 0x29
pop eax
cmp word [esi + ecx*2], ax
push 0x3f
pop eax
jne 0x442b3d
invalid
or dword [ebp + 0x148d0151], ecx
push esi
lea edx, [ecx + 1]
lea edx, [esi + edx*2]
mov dword [ebp - 0x70], edx
cmp word [edx + 2], ax
jne 0x442b7e
movzx eax, word [edx + 4]
push 0x3d
pop edi
cmp ax, di
je 0x442b70
push 0x21
pop ecx
cmp ax, cx
cmp eax, ecx
cmp eax, ecx
je 0x442b70
push 0x3c
pop ecx
cmp ax, cx
jne 0x442b7e
movzx eax, word [edx + 6]
cmp ax, di
je 0x442b70
push 0x21
pop ecx
cmp ax, cx
jne 0x442b7e
mov edx, dword [ebp + 0x28]
mov eax, dword [ebp - 0xc]
mov dword [edx + 0x7c], eax
inc edx
jl 0x442b63
inc edi
adc al, 0
invalid
inc edx
jl 0x442b63
inc edi
adc al, 0
add byte [ebx - 0x724607bb], cl
add byte [eax], al
add byte [edx + 2], ch
mov eax, dword [ebp - 8]
mov ecx, 0x8d
push 2
xor ebx, ebx
or edi, 0xffffffff
or dword [ebp - 0x18], edi
mov edx, ebx
mov word [eax + 4], cx
mov ecx, ebx
mov esi, dword [ebp - 4]
pop eax
add esi, eax
invalid
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], esi
mov dword [ebp - 0x14], ecx
movzx eax, word [esi]
cmp ax, word [ebp - 0x144]
jne 0x442cdd
test dword [esi], esp
add dword [eax], eax
invalid
invalid
test dword [esi], esp
add dword [eax], eax
add byte [edx + 0x26], ch
push 0x26
pop ebx
cmp word [esi + 2], bx
push edx
pop ebx
jne 0x442cdd
push 4
pop eax
or ebx, edi
mov ecx, 0x8f
add esi, eax
invalid
mov dword [ebp - 0x10], ebx
mov eax, dword [ebp - 8]
mov dword [ebp - 4], esi
mov word [eax + 4], cx
mov esi, dword [ebp - 4]
invalid
movzx eax, word [esi]
push 0x30
pop ecx
cmp ax, cx
jb 0x442bf9
push 0x39
pop ecx
cmp ax, cx
jbe 0x444edb
invalid
add byte [ecx + 0xff], bh
mov ecx, 0xff
cmp ax, cx
ja 0x444f0a
movzx ecx, ax
mov eax, dword [ebp + 0x28]
inc ebp
sub byte [ebx + 0x4f60c40], cl
add dword [eax], edx
inc ebp
sub byte [ebx + 0x4f60c40], cl
add dword [eax], edx
je 0x444f0a
push 2
pop eax
mov dword [ebp - 0x14], esi
mov ecx, 0xff
inc dword [eax]
add byte [eax], al
inc dword [eax]
add byte [eax], al
add esi, eax
mov dword [ebp - 4], esi
movzx eax, word [esi]
cmp ax, cx
ja 0x442c58
mov ecx, dword [ebp + 0x28]
push 2
pop ebx
mov ecx, dword [ecx + 0xc]
movzx eax, ax
test byte [eax + ecx], 0x10
je 0x442c55
add esi, ebx
mov dword [ebp - 4], esi
movzx eax, word [esi]
cmp ax, word [ebp - 0xb4]
jbe 0x442c3b
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebp + 0x2c]
mov ecx, esi
sub ecx, dword [ebp - 0x14]
sar ecx, 1
mov dword [ebp - 0x18], ecx
test eax, eax
je 0x442c6b
inc dword [eax]
test ebx, ebx
jle 0x442c83
mov ax, word [esi]
push 2
pop ecx
add esi, ecx
mov dword [ebp - 4], esi
cmp ax, bx
jne 0x444ef7
mov ecx, dword [ebp - 0x14]
mov ax, word [esi]
push 2
pop ebx
add esi, ebx
push 0x29
pop ebx
mov dword [ebp - 0x24], esi
mov dword [ebp - 4], esi
cmp ax, bx
jne 0x444ef7
cmp dword [ebp + 0x2c], 0
jne 0x443fc2
test edi, edi
js 0x442dbb
test edx, edx
jle 0x444ee9
mov ebx, dword [ebp + 0x28]
test edi, edi
je 0x442d8d
push 0x2d
pop eax
cmp edi, eax
jne 0x442d8a
mov eax, dword [ebx + 0x40]
sub eax, edx
lea edx, [eax + 1]
jmp 0x442d8d
cmp ax, word [ebp - 0x110]
jne 0x442cff
push 0x3e
jmp 0x442cec
push 0x27
pop eax
mov ebx, eax
push 2
pop eax
add esi, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp - 4], esi
jmp 0x442be2
cmp ax, word [ebp - 0xe0]
je 0x442cea
mov dword [ebp - 0x10], ebx
cmp ax, word [ebp - 0x154]
je 0x442d3d
cmp ax, word [ebp - 0x158]
je 0x442d3d
cmp ax, word [ebp - 0xe4]
jb 0x442bf9
cmp ax, word [ebp - 0x90]
ja 0x442be2
xor eax, eax
mov edi, eax
jmp 0x442d4f
mov edi, eax
push 2
pop eax
add esi, eax
mov dword [ebp - 4], esi
test edi, edi
js 0x442be2
movzx eax, word [esi]
push 0x30
pop ebx
cmp ax, bx
jb 0x442c86
push 0x39
pop ecx
cmp ax, cx
ja 0x442c83
imul ecx, edx, 0xa
movzx edx, ax
push 2
pop eax
add esi, eax
add edx, 0xffffffd0
mov dword [ebp - 4], esi
add edx, ecx
movzx eax, word [esi]
cmp ax, bx
jae 0x442d5e
jmp 0x442c83
add edx, dword [ebx + 0x40]
test edx, edx
jle 0x443f25
cmp edx, dword [ebx + 0x44]
jg 0x443f25
mov eax, dword [ebp - 8]
push 0x52
pop edi
mov word [eax + 6], dx
mov esi, dword [ebp - 4]
cmp edx, dword [ebx + 0x4c]
jle 0x442db3
mov dword [ebx + 0x4c], edx
mov ebx, dword [ebp - 0x1c]
jmp 0x443fc8
mov edx, dword [ebp + 0x28]
xor ebx, ebx
mov edi, ebx
mov ebx, dword [edx + 0x30]
mov eax, dword [edx + 0x2c]
mov dword [ebp - 0x48], eax
test ebx, ebx
jle 0x442e00
mov esi, dword [ebp - 0x18]
push 0x3c
pop eax
xor ecx, ecx
cmp di, ax
push 0x17
setne cl
add esi, edx
pop eax
dec ecx
mov dword [ebp - 4], esi
and ecx, eax
mov ebx, esi
push 0x27
pop eax
add ecx, eax
mov dword [ebp - 0x24], ebx
movzx eax, word [esi]
push 0x30
pop edx
cmp ax, dx
jb 0x4430af
push 0x39
pop edx
cmp ax, dx
jbe 0x444edb
mov edi, dword [ebp + 0x28]
mov edx, 0xff
cmp ax, dx
ja 0x4430df
mov edx, dword [edi + 0xc]
push 2
pop ebx
movzx eax, ax
test byte [eax + edx], 0x10
je 0x4430dc
add esi, ebx
mov dword [ebp - 4], esi
movzx eax, word [esi]
cmp ax, word [ebp - 0xb4]
jbe 0x4430c2
mov ebx, dword [ebp - 0x24]
mov edx, esi
sub edx, ebx
sar edx, 1
cmp dword [ebp + 0x2c], 0
mov dword [ebp - 0x14], edx
je 0x443214
mov eax, dword [edi + 0x40]
inc eax
mov dword [ebp - 0x18], eax
cmp word [esi], cx
jne 0x444f42
cmp dword [edi + 0x30], 0x2710
jge 0x444f34
lea eax, [edx + 2]
cmp eax, dword [edi + 0x34]
jle 0x443128
push 0x20
mov dword [edi + 0x34], eax
pop eax
cmp edx, eax
jle 0x443128
push 0x30
jmp fcn.00444fd6
mov ecx, dword [ebp + 0x28]
xor eax, eax
mov edi, dword [edi + 0x28]
mov ebx, eax
cmp dword [ecx + 0x30], eax
jle 0x443194
cmp edx, dword [edi + 4]
jne 0x44317b
mov ecx, dword [ebp - 0x24]
push edx
mov edx, dword [edi]
call fcn.0047f5cc
pop ecx
test eax, eax
jne 0x443178
mov eax, dword [ebp - 0x18]
cmp dword [edi + 8], eax
je 0x443191
test dword [ebp - 0x34], 0x80000
je 0x444f1f
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp - 0xc]
mov dword [ecx + 0x78], eax
mov edx, dword [ebp - 0x14]
inc ebx
add edi, 0xc
cmp ebx, dword [ecx + 0x30]
jl 0x443137
jmp 0x443194
mov ecx, dword [ebp + 0x28]
mov eax, dword [ebp - 0x18]
cmp dword [edi + 8], eax
jne 0x44316a
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x41
jmp 0x44500a
mov ecx, dword [ebp + 0x28]
cmp ebx, dword [ecx + 0x30]
mov ebx, dword [ebp + 0x28]
jl 0x443217
mov eax, dword [ebx + 0x38]
cmp dword [ebx + 0x30], eax
jl 0x4431e3
lea edi, [eax + eax]
imul eax, edi, 0xc
push eax
call dword [0x4a671c]
mov esi, eax
pop ecx
test esi, esi
je 0x444f26
imul eax, dword [ebx + 0x38], 0xc
push eax
push dword [ebx + 0x28]
push esi
call fcn.00411470
add esp, 0xc
cmp dword [ebx + 0x38], 0x14
jle 0x4431dd
push dword [ebx + 0x28]
call dword [0x4a6718]
pop ecx
mov dword [ebx + 0x28], esi
mov dword [ebx + 0x38], edi
imul ecx, dword [ebx + 0x30], 0xc
mov eax, dword [ebx + 0x28]
mov edx, dword [ebp - 0x24]
mov dword [ecx + eax], edx
imul ecx, dword [ebx + 0x30], 0xc
mov eax, dword [ebx + 0x28]
mov edx, dword [ebp - 0x14]
mov dword [ecx + eax + 4], edx
imul ecx, dword [ebx + 0x30], 0xc
mov eax, dword [ebx + 0x28]
mov edx, dword [ebp - 0x18]
mov dword [ecx + eax + 8], edx
inc dword [ebx + 0x30]
mov esi, dword [ebp - 4]
jmp 0x443217
mov ebx, dword [ebp + 0x28]
push 2
pop eax
add esi, eax
mov dword [ebp - 4], esi
jmp 0x40e965
mov ebx, dword [ebp - 0x1c]
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x4b
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x3b
jmp 0x44500a
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x42
jmp 0x44500a
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x54
jmp 0x44500a
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x23
jmp 0x44500a
push 2
pop eax
sub esi, eax
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x1a
jmp 0x44500a
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x1c
jmp 0x44500a
push 0x2b
jmp fcn.00444fd6
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x15
jmp 0x40f317
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x31
jmp 0x44500a
push 0x2a
jmp fcn.00444fd6
dec dword [ebx + 0xc70845]
dec edi
add byte [eax], al
add cl, ch
adc bl, byte [esi + 0x376afffc]
mov edi, ebx
mov ecx, 0xff
pop edx
inc eax
mov dword [ebp - 8], eax
lea eax, [esi + 2]
mov dword [ebp - 0x18], eax
movzx eax, word [eax]
cmp ax, cx
ja fcn.0040f435
test byte [eax + 0x4b9650], 8
je fcn.0040f435
mov esi, dword [ebp - 0x18]
movzx eax, word [esi]
mov dword [ebp - 0x14], eax
cmp eax, 0x61
jb 0x445664
sub eax, 0x20
mov dword [ebp - 0x14], eax
cmp eax, 0x41
sbb eax, eax
shl edi, 4
and eax, 0xfffffff9
add eax, edx
sub edi, eax
mov eax, dword [ebp - 8]
add edi, dword [ebp - 0x14]
cmp eax, 2
jl 0x44562d
jmp fcn.0040f435