Function at 0x5d3090
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x491548
mov eax, dword fs:[0]
push eax
sub esp, 0x78
push ebx
push esi
push edi
mov eax, dword [0x516a90]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x68], edi
mov dword [esp + 0x70], 0x4b450c
call 0x603e8c
xor ecx, ecx
xor esi, esi
cmp eax, esi
setne cl
cmp ecx, esi
jne 0x5d30e9
push 0x80004005
call fcn.0059d040
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
lea ecx, [esp + 0x70]
push ecx
push 0x50
mov ecx, edi
mov dword [esp + 0x98], esi
call fcn.005d2fb0
cmp eax, esi
je 0x5d3507
mov eax, dword [esp + 0x7c]
cmp eax, esi
je 0x5d3139
cmp dword [esp + 0x78], 0xc
jbe 0x5d3139
mov eax, dword [eax + 0xc]
jmp 0x5d313d
mov eax, dword [esp + 0x6c]
xor edx, edx
mov dh, byte [eax + edi + 5]
mov dl, byte [eax + edi + 4]
mov esi, edx
movzx eax, byte [esi + edi + 4]
cmp eax, 0x20
jb 0x5d3533
cmp eax, 0x25
jae 0x5d353c
movzx edx, byte [esi + edi + 8]
fldz
movzx eax, byte [esi + edi + 9]
movzx ebx, byte [esi + edi + 6]
imul eax, edx
movzx edx, byte [esi + edi + 7]
movzx ecx, byte [esi + edi + 5]
add eax, edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x44], ebx
fstp qword [edx]
xor edx, edx
cmp ebx, 4
fld qword [0x506f30]
mov dword [esp + 0x48], edx
jl 0x5d3442
lea edx, [edi + ecx + 9]
add edx, esi
mov dword [esp + 0x28], edx
lea edx, [eax + eax*2]
lea edx, [edx + edi + 9]
add edx, ecx
add edx, esi
mov dword [esp + 0x2c], edx
lea edx, [edi + 8]
lea edx, [edx + eax*2]
add edx, ecx
add edx, esi
mov dword [esp + 0x3c], edx
lea edx, [edi + eax + 9]
add edx, ecx
add edx, esi
mov dword [esp + 0x18], edx
lea edx, [edi + ecx + 5]
lea edx, [edx + esi + 0xb]
mov dword [esp + 0x38], edx
lea edx, [edi + ecx + 4]
lea edx, [edx + esi + 6]
mov dword [esp + 0x30], edx
lea edx, [eax + eax*2]
lea edx, [edx + edi + 5]
add edx, ecx
lea edx, [edx + esi + 0xb]
mov dword [esp + 0x40], edx
lea ebx, [eax + 2]
lea edx, [edi + 4]
lea edx, [edx + ebx*2]
lea ebx, [eax + 2]
add edx, ebx
add edx, ecx
add edx, esi
mov dword [esp + 0x24], edx
lea edx, [edi + 5]
lea edx, [edx + eax*2 + 6]
add edx, ecx
add edx, esi
mov dword [esp + 0x4c], edx
lea edx, [edi + 4]
lea ebx, [edx + eax]
add ebx, ecx
lea ecx, [ebx + esi + 6]
mov dword [esp + 0x20], ecx
mov ecx, 5
sub ecx, eax
mov dword [esp + 0x34], ecx
lea ecx, [edi + 5]
sub ecx, edx
mov dword [esp + 0x1c], ecx
lea ecx, [edi + 9]
lea edx, [edi + 8]
sub edx, ecx
mov ecx, dword [esp + 0x44]
add ecx, 0xfffffffc
shr ecx, 2
add ecx, 1
mov dword [esp + 0x50], ecx
add ecx, ecx
add ecx, ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x48], ecx
jmp 0x5d3272
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
movzx edx, byte [edx + ecx]
mov ebx, dword [ebp + 0x18]
mov byte [ebx], dl
movzx ecx, byte [ecx]
mov dword [esp + 0x54], ecx
mov edx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x30]
fild dword [esp + 0x54]
mov ebx, dword [esp + 0x1c]
fdiv st(1)
fstp qword [edx]
xor edx, edx
mov dh, byte [ebx + ecx]
mov ebx, dword [esp + 0x38]
mov dl, byte [ecx]
movzx ecx, dx
mov edx, dword [ebp + 8]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x20]
fild dword [esp + 0x54]
fstp qword [edx]
mov edx, dword [esp + 0x34]
movzx dx, byte [edx + ecx]
mov dh, byte [ebx]
mov ebx, dword [esp + 0x18]
movzx edx, dx
mov dword [esp + 0x54], edx
mov edx, dword [ebp + 0xc]
fild dword [esp + 0x54]
fstp qword [edx]
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + ebx]
mov ebx, dword [ebp + 0x18]
mov byte [ebx], dl
mov edx, dword [esp + 0x18]
movzx edx, byte [edx]
mov dword [esp + 0x54], edx
mov edx, dword [ebp + 0x14]
mov ebx, dword [esp + 0x1c]
fild dword [esp + 0x54]
fdiv st(1)
fstp qword [edx]
xor edx, edx
mov dh, byte [ebx + ecx]
mov ebx, dword [esp + 0x34]
mov dl, byte [ecx]
movzx ecx, dx
mov edx, dword [ebp + 8]
mov dword [esp + 0x54], ecx
xor ecx, ecx
fild dword [esp + 0x54]
fstp qword [edx]
mov edx, dword [esp + 0x4c]
mov ch, byte [ebx + edx]
mov ebx, dword [esp + 0x20]
mov cl, byte [ebx + 5]
mov ebx, dword [ebp + 0x18]
movzx ecx, cx
mov dword [esp + 0x54], ecx
mov ecx, dword [ebp + 0xc]
fild dword [esp + 0x54]
fstp qword [ecx]
mov ecx, dword [esp + 0x3c]
movzx ecx, byte [ecx]
mov byte [ebx], cl
mov ecx, dword [esp + 0x18]
movzx ecx, byte [ecx + eax]
mov dword [esp + 0x54], ecx
mov ecx, dword [ebp + 0x14]
fild dword [esp + 0x54]
fdiv st(1)
fstp qword [ecx]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ecx + eax]
mov ch, byte [edx]
movzx ecx, cx
mov dword [esp + 0x54], ecx
mov ecx, dword [ebp + 8]
fild dword [esp + 0x54]
fstp qword [ecx]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
movzx ecx, byte [ecx + ebx]
mov ch, byte [edx + 5]
mov ebx, dword [esp + 0x14]
movzx ecx, cx
mov dword [esp + 0x54], ecx
mov ecx, dword [ebp + 0xc]
fild dword [esp + 0x54]
fstp qword [ecx]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ebx + ecx]
mov ebx, dword [ebp + 0x18]
mov byte [ebx], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx]
mov dword [esp + 0x54], ecx
mov ecx, dword [ebp + 0x14]
xor ebx, ebx
fild dword [esp + 0x54]
fdiv st(1)
fstp qword [ecx]
mov cl, byte [edx + eax]
mov bh, cl
mov ecx, dword [esp + 0x24]
mov bl, byte [ecx]
movzx ecx, bx
mov dword [esp + 0x54], ecx
mov ecx, dword [ebp + 8]
xor ebx, ebx
fild dword [esp + 0x54]
fstp qword [ecx]
mov ecx, dword [esp + 0x40]
mov cl, byte [ecx]
mov bh, cl
mov ecx, dword [esp + 0x24]
mov bl, byte [ecx + 5]
movzx ecx, bx
mov dword [esp + 0x54], ecx
mov ecx, dword [ebp + 0xc]
fild dword [esp + 0x54]
fstp qword [ecx]
lea ecx, [eax*4]
add dword [esp + 0x28], ecx
add dword [esp + 0x30], ecx
add dword [esp + 0x38], ecx
add dword [esp + 0x18], ecx
add dword [esp + 0x20], ecx
add dword [esp + 0x3c], ecx
add dword [esp + 0x2c], ecx
add dword [esp + 0x24], ecx
add dword [esp + 0x40], ecx
add edx, ecx
sub dword [esp + 0x50], 1
mov dword [esp + 0x4c], edx
jne 0x5d326e
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x58]
cmp edx, ebx
jae 0x5d3505
imul edx, eax
lea ebx, [edi + edx + 9]
add ebx, ecx
add ebx, esi
mov dword [esp + 0x58], ebx
lea ebx, [edi + edx + 4]
add ebx, ecx
lea ebx, [ebx + esi + 0xb]
mov dword [esp + 0x40], ebx
lea ebx, [edi + 5]
add edx, ebx
add edx, ecx
lea ecx, [edi + 9]
lea esi, [edx + esi + 6]
lea edx, [edi + 4]
sub edi, ecx
mov ecx, dword [esp + 0x44]
add edi, 8
sub edx, ebx
sub ecx, dword [esp + 0x48]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x58]
mov dword [esp + 0x24], edx
mov dword [esp + 0x50], ecx
jmp 0x5d349d
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
movzx ecx, byte [edi + ecx]
mov ebx, dword [ebp + 0x18]
mov byte [ebx], cl
movzx ecx, byte [edi]
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 0x14]
xor ebx, ebx
fild dword [esp + 0x58]
add edi, eax
fdiv st(1)
fstp qword [ecx]
mov cl, byte [esi + edx]
mov dl, byte [esi]
mov bh, dl
mov bl, cl
mov ecx, dword [ebp + 8]
movzx edx, bx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x40]
add dword [esp + 0x40], eax
fild dword [esp + 0x58]
xor ebx, ebx
fstp qword [ecx]
mov cl, byte [edx]
mov dl, byte [esi + 5]
mov bh, dl
mov edx, dword [ebp + 0xc]
add esi, eax
sub dword [esp + 0x50], 1
mov bl, cl
movzx ecx, bx
mov dword [esp + 0x58], ecx
fild dword [esp + 0x58]
fstp qword [edx]
jne 0x5d3499
fstp st(0)
lea ecx, [esp + 0x70]
mov dword [esp + 0x90], 0xffffffff
call fcn.005d2be0
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
cmp eax, 0x25
jb 0x5d3988
cmp eax, 0x30
jae 0x5d3991
movzx edx, byte [esi + edi + 8]
fld qword [0x506f30]
movzx eax, byte [esi + edi + 9]
movzx ebx, byte [esi + edi + 6]
imul eax, edx
movzx edx, byte [esi + edi + 7]
movzx ecx, byte [esi + edi + 5]
add eax, edx
xor edx, edx
cmp ebx, 4
mov dword [esp + 0x64], ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], edx
jl 0x5d38ae
lea edx, [edi + ecx + 9]
add edx, esi
mov dword [esp + 0x2c], edx
lea edx, [eax + eax*2]
lea edx, [edx + edi + 9]
add edx, ecx
add edx, esi
mov dword [esp + 0x30], edx
lea edx, [edi + 8]
lea edx, [edx + eax*2]
add edx, ecx
add edx, esi
mov dword [esp + 0x40], edx
lea edx, [edi + eax + 9]
add edx, ecx
add edx, esi
mov dword [esp + 0x24], edx
lea edx, [edi + ecx + 5]
lea edx, [edx + esi + 0xc]
mov dword [esp + 0x44], edx
lea edx, [edi + ecx + 4]
lea edx, [edx + esi + 6]
mov dword [esp + 0x48], edx
lea edx, [eax + eax*2]
lea edx, [edx + edi + 5]
add edx, ecx
lea edx, [edx + esi + 0xa]
mov dword [esp + 0x20], edx
lea ebx, [edi + 4]
lea edx, [ebx + eax*2 + 0xc]
add edx, ecx
add edx, esi
add ebx, eax
add ebx, ecx
mov dword [esp + 0x18], edx
lea edx, [edi + eax + 5]
add edx, ecx
lea ecx, [ebx + esi + 6]
mov dword [esp + 0x28], ecx
lea ecx, [edi + 5]
mov ebx, ecx
lea ecx, [edi + 4]
sub ebx, ecx
mov ecx, 4
sub ecx, eax
mov dword [esp + 0x5c], ecx
mov ecx, 6
sub ecx, eax
mov dword [esp + 0x60], ecx
mov ecx, 0xfffffffa
sub ecx, eax
mov dword [esp + 0x54], ecx
mov ecx, 0xfffffffe
sub ecx, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], ebx
lea ecx, [edi + 9]
lea ebx, [edi + 8]
sub ebx, ecx
mov ecx, dword [esp + 0x3c]
add ecx, 0xfffffffc
shr ecx, 2
add ecx, 1
mov dword [esp + 0x4c], ecx
add ecx, ecx
lea edx, [edx + esi + 0xc]
add ecx, ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x38], ecx
jmp 0x5d366a
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ebx + ecx]
mov ebx, dword [ebp + 0x18]
mov byte [ebx], cl
mov ecx, dword [esp + 0x2c]
movzx ecx, byte [ecx]
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 0x14]
mov ebx, dword [esp + 0x54]
fild dword [esp + 0x58]
fdiv st(1)
fstp qword [ecx]
xor ecx, ecx
mov ch, byte [ebx + edx]
mov ebx, dword [esp + 0x48]
mov cl, byte [ebx]
xor ebx, ebx
movzx ecx, cx
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 8]
fild dword [esp + 0x58]
fstp qword [ecx]
mov ecx, dword [esp + 0x34]
mov bh, byte [ecx + edx]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x5c]
mov bl, byte [edx + ecx]
movzx edx, bx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 0x10]
fild dword [esp + 0x58]
fstp qword [edx]
mov edx, dword [esp + 0x60]
movzx dx, byte [edx + ecx]
mov dh, byte [ebx]
mov ebx, dword [esp + 0x24]
movzx edx, dx
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 0xc]
fild dword [esp + 0x58]
fstp qword [edx]
mov edx, dword [esp + 0x14]
movzx edx, byte [ebx + edx]
mov ebx, dword [ebp + 0x18]
mov byte [ebx], dl
mov edx, dword [esp + 0x24]
movzx edx, byte [edx]
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 0x14]
mov ebx, dword [esp + 0x1c]
fild dword [esp + 0x58]
fdiv st(1)
fstp qword [edx]
xor edx, edx
mov dh, byte [ebx + ecx]
xor ebx, ebx
mov dl, byte [ecx]
movzx edx, dx
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 8]
fild dword [esp + 0x58]
fstp qword [edx]
mov edx, dword [esp + 0x50]
mov bh, byte [edx - 2]
mov bl, byte [ecx + 4]
movzx ebx, bx
mov dword [esp + 0x58], ebx
mov ebx, dword [ebp + 0x10]
fild dword [esp + 0x58]
fstp qword [ebx]
movzx cx, byte [ecx + 6]
mov ch, byte [edx]
mov ebx, dword [ebp + 0x18]
movzx ecx, cx
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 0xc]
fild dword [esp + 0x58]
fstp qword [ecx]
mov ecx, dword [esp + 0x40]
movzx ecx, byte [ecx]
mov byte [ebx], cl
mov ecx, dword [esp + 0x24]
movzx ecx, byte [ecx + eax]
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 0x14]
mov ebx, dword [esp + 0x28]
fild dword [esp + 0x58]
fdiv st(1)
fstp qword [ecx]
xor ecx, ecx
mov ch, byte [eax + edx - 6]
mov cl, byte [ebx + eax]
xor ebx, ebx
movzx ecx, cx
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 8]
fild dword [esp + 0x58]
fstp qword [ecx]
mov bh, byte [eax + edx - 2]
mov ecx, dword [esp + 0x18]
mov bl, byte [ecx - 2]
movzx ebx, bx
mov dword [esp + 0x58], ebx
mov ebx, dword [ebp + 0x10]
fild dword [esp + 0x58]
fstp qword [ebx]
xor ebx, ebx
mov bh, byte [edx + eax]
mov bl, byte [ecx]
movzx ecx, bx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 0xc]
fild dword [esp + 0x58]
fstp qword [ecx]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx + ebx]
mov ebx, dword [ebp + 0x18]
mov byte [ebx], cl
mov ecx, dword [esp + 0x30]
movzx ecx, byte [ecx]
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 0x14]
xor ebx, ebx
fild dword [esp + 0x58]
fdiv st(1)
fstp qword [ecx]
mov ecx, dword [esp + 0x20]
mov cl, byte [ecx - 4]
mov bh, cl
mov ecx, dword [esp + 0x18]
mov bl, byte [eax + ecx - 6]
movzx ecx, bx
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 8]
xor ebx, ebx
fild dword [esp + 0x58]
fstp qword [ecx]
mov ecx, dword [esp + 0x20]
mov cl, byte [ecx]
mov bh, cl
mov ecx, dword [esp + 0x18]
mov bl, byte [eax + ecx - 2]
movzx ecx, bx
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 0x10]
xor ebx, ebx
fild dword [esp + 0x58]
fstp qword [ecx]
mov ecx, dword [esp + 0x20]
mov cl, byte [ecx + 2]
mov bh, cl
mov ecx, dword [esp + 0x18]
mov bl, byte [ecx + eax]
movzx ecx, bx
mov dword [esp + 0x58], ecx
mov ecx, dword [ebp + 0xc]
fild dword [esp + 0x58]
fstp qword [ecx]
lea ecx, [eax*4]
add dword [esp + 0x2c], ecx
add dword [esp + 0x48], ecx
add dword [esp + 0x44], ecx
add dword [esp + 0x24], ecx
add dword [esp + 0x28], ecx
add dword [esp + 0x40], ecx
add dword [esp + 0x18], ecx
add dword [esp + 0x30], ecx
add dword [esp + 0x20], ecx
add edx, ecx
sub dword [esp + 0x4c], 1
mov dword [esp + 0x50], edx
jne 0x5d3666
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x64]
cmp edx, ebx
jae 0x5d3505
imul edx, eax
lea ebx, [edx + edi + 9]
add ebx, ecx
add ebx, esi
mov dword [esp + 0x60], ebx
lea ebx, [edx + edi + 4]
add ebx, ecx
lea ebx, [ebx + esi + 0xc]
mov dword [esp + 0x64], ebx
lea ebx, [edi + 5]
add edx, ebx
add edx, ecx
lea ecx, [edi + 4]
sub ecx, ebx
mov dword [esp + 0x24], ecx
lea ecx, [edi + 9]
sub edi, ecx
mov ecx, dword [esp + 0x3c]
add edi, 8
sub ecx, dword [esp + 0x38]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x60]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x64]
lea esi, [edx + esi + 6]
mov edx, dword [esp + 0x14]
movzx edx, byte [edx + edi]
mov ebx, dword [ebp + 0x18]
mov byte [ebx], dl
movzx edx, byte [edi]
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 0x14]
xor ebx, ebx
fild dword [esp + 0x64]
add edi, eax
fdiv st(1)
fstp qword [edx]
mov dl, byte [esi]
mov bh, dl
mov edx, dword [esp + 0x24]
mov bl, byte [esi + edx]
movzx edx, bx
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 8]
xor ebx, ebx
fild dword [esp + 0x64]
fstp qword [edx]
mov dl, byte [esi + 4]
mov bh, dl
mov bl, byte [ecx - 2]
movzx edx, bx
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 0x10]
xor ebx, ebx
fild dword [esp + 0x64]
fstp qword [edx]
mov dl, byte [esi + 6]
mov bh, dl
add esi, eax
mov bl, byte [ecx]
add ecx, eax
sub dword [esp + 0x50], 1
movzx edx, bx
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 0xc]
fild dword [esp + 0x64]
fstp qword [edx]
jne 0x5d3907
jmp 0x5d3505
cmp eax, 0x30
jb 0x5d3e52
cmp eax, 0x40
jae 0x5d3e52
movzx edx, byte [esi + edi + 8]
movzx ecx, byte [esi + edi + 9]
movzx ebx, byte [esi + edi + 6]
imul ecx, edx
movzx edx, byte [esi + edi + 7]
movzx eax, byte [esi + edi + 5]
add ecx, edx
xor edx, edx
cmp ebx, 4
mov dword [esp + 0x6c], eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x48], edx
jl 0x5d3d65
lea edx, [edi + 0xa]
mov dword [esp + 0x50], edx
lea edx, [edi + 0xb]
mov dword [esp + 0x4c], edx
lea ebx, [edi + 4]
mov dword [esp + 0x48], ebx
lea ebx, [edx + eax]
add ebx, esi
mov dword [esp + 0x2c], ebx
lea ebx, [ecx + ecx*2]
add edx, ebx
add edx, eax
add edx, esi
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x50]
lea edx, [edx + ecx*2]
add edx, eax
add edx, esi
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x4c]
add edx, ecx
add edx, eax
add edx, esi
mov dword [esp + 0x24], edx
add edi, 5
mov dword [esp + 0x30], edi
mov edx, edi
add edx, eax
lea edx, [edx + esi + 0xc]
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x48]
add edx, eax
lea edx, [edx + esi + 8]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x30]
add edx, ebx
add edx, eax
lea edx, [edx + esi + 0xa]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x48]
lea ebx, [edx + ecx*2 + 0xc]
add ebx, eax
add ebx, esi
add edx, ecx
add edx, eax
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x30]
add ebx, ecx
add ebx, eax
lea eax, [edx + esi + 8]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x48]
add edx, 0xfffffffc
mov dword [esp + 0x1c], eax
mov eax, 2
sub eax, ecx
mov dword [esp + 0x58], eax
mov eax, 4
sub eax, ecx
mov dword [esp + 0x30], eax
mov eax, 0xfffffffc
sub eax, ecx
mov dword [esp + 0x60], eax
mov eax, 0xfffffffe
sub eax, ecx
shr edx, 2
add edx, 1
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x4c]
mov dword [esp + 0x50], edx
add edx, edx
lea ebx, [ebx + esi + 0xc]
add edx, edx
lea edi, [ecx*4]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], edx
jmp 0x5d3ae4
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
movzx eax, byte [edx + eax]
mov edx, dword [ebp + 0x18]
mov byte [edx], al
mov eax, dword [esp + 0x2c]
movzx edx, byte [eax]
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x64], eax
xor eax, eax
fild dword [esp + 0x64]
fstp qword [edx]
mov edx, dword [esp + 0x60]
mov ah, byte [edx + ebx]
mov edx, dword [esp + 0x44]
mov al, byte [edx]
mov edx, dword [ebp + 8]
movzx eax, ax
mov dword [esp + 0x64], eax
xor eax, eax
fild dword [esp + 0x64]
fstp qword [edx]
mov edx, dword [esp + 0x5c]
mov ah, byte [edx + ebx]
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0x58]
mov al, byte [edx + ebx]
mov edx, dword [ebp + 0x10]
movzx eax, ax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x30]
fild dword [esp + 0x64]
fstp qword [edx]
movzx dx, byte [eax + ebx]
mov eax, dword [esp + 0x40]
mov dh, byte [eax]
mov eax, dword [ebp + 0xc]
movzx edx, dx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x28]
fild dword [esp + 0x64]
fstp qword [eax]
mov eax, dword [esp + 0x24]
movzx edx, byte [edx + eax]
mov eax, dword [ebp + 0x18]
mov byte [eax], dl
mov edx, dword [esp + 0x24]
movzx edx, byte [edx]
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x64], eax
xor eax, eax
fild dword [esp + 0x64]
fstp qword [edx]
mov edx, dword [esp + 0x1c]
mov ah, byte [edx + ebx]
mov edx, dword [ebp + 8]
mov al, byte [ebx]
mov ebx, dword [esp + 0x54]
movzx eax, ax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x20]
fild dword [esp + 0x64]
fstp qword [edx]
xor edx, edx
mov dh, byte [ebx - 2]
mov dl, byte [eax + 2]
movzx edx, dx
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 0x10]
fild dword [esp + 0x64]
fstp qword [edx]
movzx ax, byte [eax + 4]
mov ah, byte [ebx]
movzx edx, ax
mov dword [esp + 0x64], edx
mov eax, dword [ebp + 0xc]
mov edx, dword [esp + 0x3c]
fild dword [esp + 0x64]
fstp qword [eax]
movzx eax, byte [edx]
mov edx, dword [ebp + 0x18]
mov byte [edx], al
mov eax, dword [esp + 0x24]
movzx edx, byte [eax + ecx]
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x64], eax
xor eax, eax
fild dword [esp + 0x64]
fstp qword [edx]
mov ah, byte [ecx + ebx - 4]
mov edx, dword [esp + 0x20]
mov al, byte [edx + ecx]
mov edx, dword [ebp + 8]
movzx eax, ax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x18]
fild dword [esp + 0x64]
fstp qword [edx]
xor edx, edx
mov dh, byte [ecx + ebx - 2]
mov dl, byte [eax - 2]
movzx edx, dx
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 0x10]
fild dword [esp + 0x64]
fstp qword [edx]
xor edx, edx
mov dh, byte [ebx + ecx]
mov dl, byte [eax]
movzx eax, dx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x28]
fild dword [esp + 0x64]
fstp qword [edx]
mov edx, dword [esp + 0x34]
movzx eax, byte [eax + edx]
mov edx, dword [ebp + 0x18]
mov byte [edx], al
mov eax, dword [esp + 0x34]
movzx edx, byte [eax]
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x14]
fild dword [esp + 0x64]
fstp qword [edx]
mov al, byte [eax - 2]
xor edx, edx
mov dh, al
mov eax, dword [esp + 0x18]
mov dl, byte [ecx + eax - 4]
mov eax, dword [ebp + 8]
movzx edx, dx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x14]
fild dword [esp + 0x64]
fstp qword [eax]
mov al, byte [edx]
xor edx, edx
mov dh, al
mov eax, dword [esp + 0x18]
add dword [esp + 0x2c], edi
add dword [esp + 0x44], edi
add dword [esp + 0x40], edi
add dword [esp + 0x24], edi
add dword [esp + 0x20], edi
mov dl, byte [ecx + eax - 2]
mov eax, dword [ebp + 0x10]
add dword [esp + 0x3c], edi
add dword [esp + 0x34], edi
add ebx, edi
mov dword [esp + 0x54], ebx
movzx edx, dx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x14]
add dword [esp + 0x14], edi
fild dword [esp + 0x64]
fstp qword [eax]
mov al, byte [edx + 2]
xor edx, edx
mov dh, al
mov eax, dword [esp + 0x18]
add dword [esp + 0x18], edi
sub dword [esp + 0x50], 1
mov dl, byte [eax + ecx]
mov eax, dword [ebp + 0xc]
movzx edx, dx
mov dword [esp + 0x64], edx
fild dword [esp + 0x64]
fstp qword [eax]
jne 0x5d3ae0
mov edi, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
cmp edx, ebx
jae 0x5d3507
imul edx, ecx
lea ebx, [edi + edx + 0xb]
add ebx, eax
add ebx, esi
mov dword [esp + 0x6c], ebx
lea ebx, [edx + edi + 4]
add ebx, eax
lea ebx, [ebx + esi + 0xc]
mov dword [esp + 0x68], ebx
lea ebx, [edi + 5]
add edx, ebx
add edx, eax
lea eax, [edi + 4]
sub eax, ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x24], eax
lea eax, [edi + 0xb]
sub edi, eax
mov eax, dword [esp + 0x38]
add edi, 0xa
sub eax, dword [esp + 0x48]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x6c]
lea esi, [edx + esi + 8]
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x28]
movzx eax, byte [edx + edi]
mov edx, dword [ebp + 0x18]
mov byte [edx], al
movzx edx, byte [edi]
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x6c], eax
add edi, ecx
fild dword [esp + 0x6c]
fstp qword [edx]
mov al, byte [esi]
xor edx, edx
mov dh, al
mov eax, dword [esp + 0x24]
mov dl, byte [esi + eax]
mov eax, dword [ebp + 8]
movzx edx, dx
mov dword [esp + 0x6c], edx
xor edx, edx
fild dword [esp + 0x6c]
fstp qword [eax]
mov al, byte [esi + 2]
mov dh, al
mov dl, byte [ebx - 2]
movzx eax, dx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
fstp qword [edx]
mov al, byte [esi + 4]
xor edx, edx
mov dh, al
add esi, ecx
mov dl, byte [ebx]
add ebx, ecx
sub dword [esp + 0x54], 1
movzx eax, dx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x6c], eax
fild dword [esp + 0x6c]
fstp qword [edx]
jne 0x5d3dbe
jmp 0x5d3507
push eax
push 0x4b4588
push 8
call fcn.005c18a0
add esp, 0xc
jmp 0x5d3507