Function at 0x44d1f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xd8
push ebp
mov ebp, ecx
mov eax, dword [ebp + 0x228]
test eax, eax
mov dword [esp + 0x2c], ebp
je 0x44e4a2
mov eax, dword [esp + 0x100]
test eax, eax
jle 0x44e4a2
cmp eax, 0xff
jg 0x44e4a2
push edi
mov edi, dword [esp + 0xec]
mov edx, dword [edi + 0x228]
test edx, edx
jne 0x44d23c
mov eax, dword [edi + 0x78]
jmp 0x44d242
mov eax, dword [edi + 0x1c0]
mov ecx, dword [esp + 0xf0]
push esi
mov esi, dword [esp + 0xfc]
add esi, ecx
cmp eax, esi
jge 0x44d26f
test edx, edx
jne 0x44d260
mov eax, dword [edi + 0x78]
jmp 0x44d266
mov eax, dword [edi + 0x1c0]
sub eax, ecx
mov dword [esp + 0xfc], eax
test edx, edx
jne 0x44d278
mov eax, dword [edi + 0x7c]
jmp 0x44d27e
mov eax, dword [edi + 0x1bc]
mov ecx, dword [esp + 0xf8]
mov esi, dword [esp + 0x100]
add esi, ecx
cmp eax, esi
jge 0x44d2aa
test edx, edx
jne 0x44d29b
mov eax, dword [edi + 0x7c]
jmp 0x44d2a1
mov eax, dword [edi + 0x1bc]
sub eax, ecx
mov dword [esp + 0x100], eax
fild dword [esp + 0x104]
push ebx
fmul dword [0x48b5f0]
fstp dword [esp + 0x28]
fild dword [esp + 0x100]
fmul dword [esp + 0x28]
call fcn.004670a8
fild dword [esp + 0x104]
mov esi, eax
fmul dword [esp + 0x28]
call fcn.004670a8
test esi, esi
mov ebx, eax
jne 0x44d2f6
pop ebx
pop esi
pop edi
mov eax, 1
pop ebp
add esp, 0xd8
ret 0x28
test ebx, ebx
jne 0x44d30c
pop ebx
pop esi
pop edi
mov eax, 2
pop ebp
add esp, 0xd8
ret 0x28
mov eax, dword [esp + 0x100]
shl eax, 0x10
xor edx, edx
div esi
xor edx, edx
mov ecx, dword [esp + 0xf0]
mov dword [esp + 0x9c], ecx
mov ecx, ebp
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x104]
shl eax, 0x10
div ebx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x98], eax
call fcn.00401260
mov ecx, ebp
mov dword [esp + 0xa0], eax
call fcn.00401240
mov ecx, edi
mov dword [esp + 0xa4], eax
call fcn.00401260
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [esp + 0x28]
call fcn.004670a8
mov ecx, edi
mov dword [esp + 0xa8], eax
call fcn.00401240
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [esp + 0x28]
call fcn.004670a8
fild dword [esp + 0xf8]
mov edx, dword [esp + 0xec]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xf0]
fmul dword [esp + 0x28]
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], ebx
call fcn.004670a8
fild dword [esp + 0xfc]
mov dword [esp + 0xd8], eax
fmul dword [esp + 0x28]
call fcn.004670a8
lea ecx, [esp + 0x98]
push ecx
mov ecx, ebp
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], ebx
call fcn.004469b0
test eax, eax
jne 0x44d431
pop ebx
pop esi
pop edi
mov eax, 3
pop ebp
add esp, 0xd8
ret 0x28
mov eax, dword [esp + 0xb8]
imul eax, dword [esp + 0x70]
mov esi, dword [esp + 0xbc]
imul esi, dword [esp + 0x60]
mov ecx, ebp
mov dword [esp + 0x78], eax
call fcn.00446eb0
mov ecx, edi
mov ebx, eax
call fcn.00446eb0
test ebx, ebx
mov dword [esp + 0x7c], eax
je 0x44d2e4
test eax, eax
je 0x44d2fa
mov ecx, ebp
call fcn.004424e0
mov ecx, edi
mov dword [esp + 0x50], eax
call fcn.004424e0
mov ebp, dword [ebp + 0x228]
cmp ebp, 0x378
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x74], edx
ja 0x44e100
je 0x44dd6b
sub ebp, 0x22b
je 0x44d953
sub ebp, 0xa
jne 0x44e47e
mov ecx, dword [esp + 0xb4]
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xc4]
add eax, ecx
cmp ecx, eax
jge 0x44e47e
mov edi, dword [esp + 0xb0]
mov edx, dword [esp + 0xc0]
add edx, edi
mov edi, dword [esp + 0x50]
imul edi, ecx
add edi, ebx
sub eax, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edi
mov dword [esp + 0x30], eax
jmp 0x44d510
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0xf4]
mov eax, ebx
shr eax, 0x10
mov esi, eax
imul esi, dword [esp + 0x28]
add esi, ebp
push eax
add ecx, 0x58
mov dword [esp + 0x50], esi
call fcn.004466b0
mov edx, dword [esp + 0xb0]
mov ebp, eax
mov eax, ebx
shr eax, 8
mov byte [esp + 0x11], al
cmp edx, dword [esp + 0x2c]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x1c], edx
jge 0x44d927
mov eax, dword [esp + 0x74]
lea ecx, [eax + ebp]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x54], eax
mov ecx, eax
shr ecx, 8
mov byte [esp + 0x13], cl
mov ecx, eax
shr ecx, 0x10
mov bl, byte [ecx + ebp + 1]
mov al, byte [ecx + ebp]
mov byte [esp + 0x10], bl
mov ebx, dword [esp + 0x24]
mov bl, byte [ebx + ecx]
mov byte [esp + 0x12], bl
mov ebx, dword [esp + 0x24]
movzx ebx, byte [ebx + ecx + 1]
mov dword [esp + 0x44], ebx
movzx ebx, byte [esp + 0x12]
movzx eax, al
mov dword [esp + 0x3c], ebx
movzx ebx, byte [esp + 0x10]
mov dword [esp + 0x90], eax
add eax, ebx
mov dword [esp + 0x88], ebx
add eax, dword [esp + 0x3c]
add eax, dword [esp + 0x44]
je 0x44d908
movzx eax, word [edi + edx*2]
mov edx, eax
and edx, 0xf800
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
mov edx, eax
and eax, 0x1f
and edx, 0x7e0
mov dword [esp + 0x48], eax
movzx eax, word [esi + ecx*2]
mov edi, eax
mov dword [esp + 0x84], edx
mov edx, eax
and eax, 0x1f
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x20]
add eax, ecx
lea ebx, [esi + eax*2]
movzx eax, word [ebx]
and edi, 0x7e0
mov dword [esp + 0x40], edi
mov edi, eax
and edi, 0x7e0
and edx, 0xf800
mov dword [esp + 0x94], edi
movzx edi, word [esi + ecx*2 + 2]
mov ebp, eax
and ebp, 0xf800
and eax, 0x1f
mov ecx, edi
and ecx, 0xf800
sub ecx, edx
mov dword [esp + 0x8c], eax
movzx eax, byte [esp + 0x13]
imul ecx, eax
inc edx
imul edx, edx, 0xff
add ecx, edx
movzx edx, word [ebx + 2]
sar ecx, 8
movzx ebx, byte [esp + 0x11]
mov esi, edx
and esi, 0xf800
sub esi, ebp
imul esi, eax
inc ebp
imul ebp, ebp, 0xff
add esi, ebp
sar esi, 8
sub esi, ecx
imul esi, ebx
inc ecx
imul ecx, ecx, 0xff
add esi, ecx
mov ecx, dword [esp + 0x40]
mov ebp, edi
and ebp, 0x7e0
sub ebp, ecx
imul ebp, eax
sar esi, 8
inc ecx
imul ecx, ecx, 0xff
add ebp, ecx
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x94]
mov ecx, edx
and ecx, 0x7e0
sub ecx, ebx
imul ecx, eax
sar ebp, 8
inc ebx
imul ebx, ebx, 0xff
add ecx, ebx
mov ebx, dword [esp + 0x34]
sar ecx, 8
sub ecx, ebp
imul ecx, ebx
inc ebp
imul ebp, ebp, 0xff
add ecx, ebp
sar ecx, 8
mov ebp, dword [esp + 0x80]
and edi, 0x1f
sub edi, ebp
imul edi, eax
inc ebp
and edx, 0x1f
imul ebp, ebp, 0xff
add edi, ebp
mov ebp, dword [esp + 0x8c]
sub edx, ebp
imul edx, eax
sar edi, 8
inc ebp
imul ebp, ebp, 0xff
add edx, ebp
sar edx, 8
sub edx, edi
imul edx, ebx
inc edi
imul edi, edi, 0xff
add edx, edi
mov edi, dword [esp + 0x90]
sar edx, 8
mov ebx, edx
mov edx, dword [esp + 0x88]
sub edx, edi
imul edx, eax
mov ebp, dword [esp + 0x3c]
inc edi
imul edi, edi, 0xff
add edx, edi
sar edx, 8
movzx edi, dl
mov edx, dword [esp + 0x44]
sub edx, ebp
imul edx, eax
inc ebp
imul ebp, ebp, 0xff
add edx, ebp
sar edx, 8
movzx eax, dl
mov edx, dword [esp + 0x110]
sub eax, edi
imul eax, dword [esp + 0x34]
inc edi
imul edi, edi, 0xff
add eax, edi
mov edi, dword [esp + 0x10c]
sar eax, 8
test edx, edx
jne 0x44d834
xor edx, edx
test al, al
setne dl
movzx eax, al
add edx, eax
xor eax, eax
test edi, edi
setne al
add eax, edi
imul edx, eax
sar edx, 8
cmp dx, 0xff
jbe 0x44d7cb
or dl, 0xff
mov eax, dword [esp + 0x84]
sub ecx, eax
movzx edx, dl
imul ecx, edx
inc eax
imul eax, eax, 0xff
add ecx, eax
mov eax, dword [esp + 0x48]
sub ebx, eax
sar ecx, 8
imul ebx, edx
and ecx, 0x7e0
inc eax
imul eax, eax, 0xff
mov edi, dword [esp + 0x58]
add ebx, eax
mov eax, dword [esp + 0x6c]
sub esi, eax
sar ebx, 8
imul esi, edx
mov edx, dword [esp + 0x1c]
and ebx, 0x1f
or ecx, ebx
inc eax
imul eax, eax, 0xff
add esi, eax
sar esi, 8
and esi, 0xf800
or ecx, esi
mov word [edi + edx*2], cx
jmp 0x44d900
xor edx, edx
test al, al
setne dl
movzx eax, al
mov byte [esp + 0x1a], bl
mov ebx, 0xff
add edx, eax
xor eax, eax
test edi, edi
setne al
sar ecx, 5
mov byte [esp + 0x19], cl
add eax, edi
imul edx, eax
sar edx, 8
mov edi, edx
mov edx, esi
sar edx, 0xb
mov byte [esp + 0x18], dl
xor ecx, ecx
movzx edx, di
nop
movzx eax, byte [esp + ecx + 0x18]
imul eax, edx
sar eax, 8
cmp ax, bx
jbe 0x44d886
mov byte [esp + ecx + 0x14], bl
jmp 0x44d88a
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 3
jl 0x44d870
mov eax, dword [esp + 0x68]
movzx edx, byte [esp + 0x15]
mov ecx, eax
shr eax, 5
and eax, 0x3f
mov esi, 0x3f
sub esi, eax
imul esi, edx
movzx dx, byte [esp + 0x14]
shl eax, 5
shr esi, 1
shr ecx, 0xb
and esi, 0xffe0
add esi, eax
mov eax, 0x1f
sub eax, ecx
imul eax, edx
movzx edx, byte [esp + 0x16]
shl ecx, 5
mov edi, dword [esp + 0x58]
and eax, 0xffe0
add eax, ecx
shl eax, 6
or esi, eax
mov eax, dword [esp + 0x48]
mov ecx, 0x1f
sub ecx, eax
imul ecx, edx
mov edx, dword [esp + 0x1c]
shr ecx, 5
add ecx, eax
or esi, ecx
mov word [edi + edx*2], si
mov ebp, dword [esp + 0x64]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x2c]
inc edx
add eax, ebx
cmp edx, ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x54], eax
jl 0x44d571
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x50]
add ecx, eax
mov eax, dword [esp + 0x30]
add edi, edx
dec eax
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x30], eax
jne 0x44d510
jmp 0x44e47e
mov ecx, dword [esp + 0xb4]
cdq
sub eax, edx
mov edx, dword [esp + 0xc4]
sar eax, 1
mov dword [esp + 0x68], eax
lea eax, [edx + ecx]
cmp ecx, eax
jge 0x44e47e
mov ebp, dword [esp + 0x50]
mov edx, dword [esp + 0xc0]
imul ebp, ecx
mov edi, dword [esp + 0xb0]
add edx, edi
add ebp, ebx
sub eax, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x20], eax
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x7c]
mov eax, edi
shr eax, 0x10
mov esi, eax
imul esi, dword [esp + 0x28]
add esi, ecx
mov ecx, dword [esp + 0xf4]
push eax
add ecx, 0x58
mov dword [esp + 0x50], esi
call fcn.004466b0
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb0]
mov ebx, edi
shr ebx, 8
cmp eax, ecx
mov byte [esp + 0x2c], bl
mov dword [esp + 0x3c], eax
jge 0x44dd3f
mov edi, dword [esp + 0x78]
mov dword [esp + 0x64], edi
jmp 0x44da00
mov bl, byte [esp + 0x2c]
lea esp, [esp]
mov ecx, dword [esp + 0x34]
mov edx, edi
shr edi, 0x10
mov cl, byte [edi + ecx]
shr edx, 8
test cl, cl
mov byte [esp + 0x90], dl
mov dword [esp + 0x84], edi
mov byte [esp + 0x1c], cl
je 0x44dd20
movzx eax, word [ebp + eax*2]
mov ecx, eax
and ecx, 0x7c00
mov dword [esp + 0x80], eax
mov dword [esp + 0x8c], ecx
mov ecx, eax
and eax, 0x1f
and ecx, 0x3e0
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x68]
movzx ebx, bl
mov dword [esp + 0x88], ecx
lea ecx, [edi + eax]
lea eax, [esi + ecx*2]
movzx ecx, word [eax]
movzx eax, word [eax + 2]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ecx
movzx ecx, word [esi + edi*2]
mov dword [esp + 0x48], ecx
movzx ecx, word [esi + edi*2 + 2]
movzx ebp, dl
mov edi, 0xff
sub edi, ebx
mov ebx, dword [esp + 0x48]
and ebx, 0x7c00
mov esi, ecx
and esi, 0x7c00
imul esi, ebp
mov edx, 0xff
sub edx, ebp
imul ebx, edx
add esi, ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x30], edi
and ebx, 0x7c00
imul ebx, edx
shr esi, 8
imul esi, edi
mov edi, eax
and edi, 0x7c00
imul edi, ebp
add edi, ebx
mov ebx, dword [esp + 0x48]
shr edi, 8
imul edi, dword [esp + 0x58]
add esi, edi
and ebx, 0x3e0
imul ebx, edx
mov edi, ecx
and edi, 0x3e0
imul edi, ebp
add edi, ebx
mov ebx, eax
and ebx, 0x3e0
imul ebx, ebp
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0x5c]
and ebp, 0x3e0
imul ebp, edx
add ebx, ebp
mov ebp, dword [esp + 0x6c]
shr ebx, 8
imul ebx, dword [esp + 0x58]
shr edi, 8
imul edi, dword [esp + 0x30]
add edi, ebx
mov ebx, dword [esp + 0x5c]
and eax, 0x1f
and ebx, 0x1f
imul eax, ebp
imul ebx, edx
add eax, ebx
mov ebx, dword [esp + 0x48]
shr eax, 8
imul eax, dword [esp + 0x58]
and ecx, 0x1f
shr esi, 8
imul ecx, ebp
shr edi, 8
and ebx, 0x1f
imul ebx, edx
mov edx, dword [esp + 0x74]
add ecx, ebx
shr ecx, 8
imul ecx, dword [esp + 0x30]
add eax, ecx
shr eax, 8
mov ebx, eax
mov eax, dword [esp + 0x34]
lea ecx, [eax + edx]
mov eax, dword [esp + 0x84]
xor edx, edx
mov dl, byte [ecx + eax + 1]
movzx ecx, byte [ecx + eax]
push 0x49d610
push edx
mov edx, dword [esp + 0x3c]
movzx eax, byte [eax + edx + 1]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [esp + 0xa0]
push ecx
push edx
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x58]
call fcn.004466d0
mov eax, dword [esp + 0x110]
test eax, eax
mov ebp, dword [esp + 0x10c]
jne 0x44dc47
mov cl, byte [esp + 0x1c]
xor eax, eax
test cl, cl
setne al
movzx edx, cl
xor ecx, ecx
add eax, edx
test ebp, ebp
setne cl
add ecx, ebp
imul eax, ecx
sar eax, 8
cmp ax, 0x100
jne 0x44dbf1
or al, 0xff
movzx eax, al
mov edx, eax
imul edx, edi
mov ecx, 0xff
sub ecx, eax
mov edi, ecx
imul edi, dword [esp + 0x88]
add edx, edi
mov edi, eax
imul eax, esi
imul edi, ebx
mov ebx, ecx
imul ecx, dword [esp + 0x8c]
imul ebx, dword [esp + 0x54]
add edi, ebx
shr edx, 8
add eax, ecx
shr edi, 8
and edx, 0x3e0
and edi, 0x1f
shr eax, 8
or edx, edi
and eax, 0x7c00
or edx, eax
jmp 0x44dd0f
mov al, byte [esp + 0x1c]
xor ecx, ecx
test al, al
setne cl
movzx edx, al
xor eax, eax
mov byte [esp + 0x1a], bl
add ecx, edx
test ebp, ebp
setne al
mov edx, edi
shr edx, 5
mov byte [esp + 0x19], dl
add eax, ebp
imul ecx, eax
sar ecx, 8
mov eax, ecx
mov ecx, esi
shr ecx, 0xa
mov byte [esp + 0x18], cl
xor ecx, ecx
movzx edx, ax
movzx eax, byte [esp + ecx + 0x18]
imul eax, edx
sar eax, 8
cmp ax, 0xff
jbe 0x44dc9b
mov byte [esp + ecx + 0x14], 0xff
jmp 0x44dc9f
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 3
jl 0x44dc83
movzx si, byte [esp + 0x14]
mov eax, dword [esp + 0x80]
mov ecx, eax
shr ecx, 0xa
and ecx, 0x1f
mov edx, 0x1f
sub edx, ecx
imul edx, esi
movzx si, byte [esp + 0x15]
shl ecx, 5
and edx, 0xffe0
add edx, ecx
shr eax, 5
and eax, 0x1f
mov ecx, 0x1f
sub ecx, eax
imul ecx, esi
movzx esi, byte [esp + 0x16]
and ecx, 0xffe0
shl eax, 5
add ecx, eax
mov eax, dword [esp + 0x54]
shl edx, 5
or edx, ecx
mov ecx, 0x1f
sub ecx, eax
imul ecx, esi
shr ecx, 5
add ecx, eax
or edx, ecx
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x4c]
mov word [ebp + eax*2], dx
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x40]
inc eax
add edi, edx
cmp eax, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x64], edi
jl 0x44d9f8
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
add ebp, edx
mov edx, dword [esp + 0x60]
add ecx, edx
dec eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], eax
jne 0x44d9a0
jmp 0x44e47e
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xc4]
lea ecx, [eax + edx]
cmp edx, ecx
jge 0x44e47e
mov eax, dword [esp + 0xc0]
mov edi, dword [esp + 0xb0]
add eax, edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
imul eax, edx
add eax, ebx
sub ecx, edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ecx
nop
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x7c]
mov eax, esi
shr eax, 0x10
mov ebp, eax
imul ebp, dword [esp + 0x28]
push eax
add ecx, 0x58
add ebp, ebx
call fcn.004466b0
mov edx, dword [esp + 0x20]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xb0]
mov ecx, esi
shr ecx, 8
cmp eax, edx
mov byte [esp + 0x24], cl
jge 0x44e0d0
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
lea eax, [edx + ecx*2]
lea edx, [ecx + eax + 2]
mov eax, dword [esp + 0x20]
sub eax, ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], eax
mov edi, edi
mov eax, dword [esp + 0x3c]
mov ebx, eax
shr eax, 8
shr ebx, 0x10
mov byte [esp + 0x44], al
mov eax, dword [esp + 0x40]
cmp byte [ebx + eax], 0
lea esi, [ebx + ebx*2]
je 0x44e0a8
mov ecx, dword [esp + 0x28]
lea edi, [ecx + ebp]
xor edx, edx
mov dl, byte [esi + edi + 3]
push 0x49d610
xor eax, eax
mov al, byte [esi + edi]
xor ecx, ecx
mov cl, byte [esi + ebp + 3]
push edx
xor edx, edx
mov dl, byte [esi + ebp]
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x54]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x54]
lea edx, [esp + 0x2f]
push edx
call fcn.004466d0
xor eax, eax
mov al, byte [esi + edi + 4]
push 0x49d610
xor ecx, ecx
mov cl, byte [esi + edi + 1]
xor edx, edx
mov dl, byte [esi + ebp + 4]
push eax
xor eax, eax
mov al, byte [esi + ebp + 1]
push ecx
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x54]
push eax
push ecx
mov ecx, dword [esp + 0x50]
push edx
lea eax, [esp + 0x2c]
push eax
call fcn.004466d0
xor ecx, ecx
mov cl, byte [esi + edi + 5]
push 0x49d610
xor edx, edx
mov dl, byte [esi + edi + 2]
mov edi, dword [esp + 0x28]
xor eax, eax
mov al, byte [esi + ebp + 5]
push ecx
xor ecx, ecx
mov cl, byte [esi + ebp + 2]
mov esi, dword [esp + 0x4c]
push edx
lea edx, [esp + 0x1e]
push eax
push ecx
mov ecx, dword [esp + 0x4c]
push edi
push esi
push edx
call fcn.004466d0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x74]
add eax, ecx
movzx ecx, byte [ebx + ecx]
xor edx, edx
mov dl, byte [ebx + eax + 1]
movzx eax, byte [ebx + eax]
push 0x49d610
push edx
push eax
push ecx
push ecx
push edi
push esi
lea ecx, [esp + 0x2d]
push ecx
mov ecx, dword [esp + 0x58]
call fcn.004466d0
mov eax, dword [esp + 0x110]
test eax, eax
jne 0x44dfcd
mov cl, byte [esp + 0x11]
xor eax, eax
test cl, cl
setne al
movzx edx, cl
mov ecx, dword [esp + 0x10c]
add eax, edx
xor edx, edx
test ecx, ecx
setne dl
add edx, ecx
imul eax, edx
sar eax, 8
cmp ax, 0x100
jne 0x44df5f
or al, 0xff
movzx esi, byte [esp + 0x13]
movzx ecx, al
mov eax, dword [esp + 0x1c]
movzx edx, byte [eax - 2]
shl edx, 8
mov dl, byte [edx + ecx + 0x4bd618]
shl esi, 8
mov bl, byte [esi + ecx + 0x4ad618]
movzx esi, byte [eax - 1]
add dl, bl
mov byte [eax - 2], dl
movzx edx, byte [esp + 0x10]
shl edx, 8
mov dl, byte [edx + ecx + 0x4ad618]
shl esi, 8
mov bl, byte [esi + ecx + 0x4bd618]
movzx esi, byte [eax]
add dl, bl
mov byte [eax - 1], dl
movzx edx, byte [esp + 0x12]
shl edx, 8
mov dl, byte [edx + ecx + 0x4ad618]
shl esi, 8
add dl, byte [esi + ecx + 0x4bd618]
mov byte [eax], dl
jmp 0x44e0a8
mov al, byte [esp + 0x11]
xor ecx, ecx
test al, al
setne cl
movzx edx, al
mov eax, dword [esp + 0x10c]
add ecx, edx
xor edx, edx
test eax, eax
setne dl
add edx, eax
imul ecx, edx
mov dl, byte [esp + 0x10]
sar ecx, 8
mov eax, ecx
mov cl, byte [esp + 0x13]
mov byte [esp + 0x18], cl
mov cl, byte [esp + 0x12]
mov byte [esp + 0x19], dl
mov byte [esp + 0x1a], cl
xor ecx, ecx
movzx edx, ax
movzx eax, byte [esp + ecx + 0x18]
imul eax, edx
sar eax, 8
cmp ax, 0xff
jbe 0x44e02a
mov byte [esp + ecx + 0x14], 0xff
jmp 0x44e02e
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 3
jl 0x44e012
mov ecx, dword [esp + 0x1c]
mov bl, byte [ecx - 2]
movzx edx, bl
mov eax, 0xff
sub eax, edx
movzx edx, byte [esp + 0x14]
imul eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx - 1]
mov byte [ecx - 2], al
movzx edx, bl
mov eax, 0xff
sub eax, edx
movzx edx, byte [esp + 0x15]
imul eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx]
mov byte [ecx - 1], al
movzx edx, bl
mov eax, 0xff
sub eax, edx
movzx edx, byte [esp + 0x16]
imul eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov byte [ecx], al
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x30]
add edx, 3
dec eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], eax
jne 0x44de20
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
add edx, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x60]
add ecx, edx
dec eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x2c], eax
jne 0x44ddb0
jmp 0x44e47e
cmp ebp, 0x22b8
jne 0x44e47e
mov ecx, dword [esp + 0xb4]
mov eax, dword [esp + 0xc4]
add eax, ecx
cmp ecx, eax
jge 0x44e47e
mov edi, dword [esp + 0xb0]
mov edx, dword [esp + 0xc0]
add edx, edi
mov edi, esi
mov esi, dword [esp + 0x50]
imul esi, ecx
add esi, ebx
sub eax, ecx
mov dword [esp + 0x68], edx
mov dword [esp + 0x54], edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0xf4]
mov ebx, dword [esp + 0x7c]
mov eax, edi
shr eax, 0x10
mov ebp, eax
imul ebp, dword [esp + 0x28]
push eax
add ecx, 0x58
add ebp, ebx
call fcn.004466b0
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x20], eax
mov eax, edi
shr eax, 8
cmp edx, ecx
mov byte [esp + 0x24], al
jge 0x44e45b
mov eax, dword [esp + 0x78]
lea esi, [esi + edx*4 + 2]
sub ecx, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], ecx
lea esp, [esp]
mov ecx, dword [esp + 0x20]
mov esi, eax
shr eax, 8
shr esi, 0x10
mov byte [esp + 0x6c], al
cmp byte [esi + ecx], 0
je 0x44e42b
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x6c]
lea edi, [edx + ebp]
xor eax, eax
mov al, byte [edi + esi*4 + 4]
push 0x49d610
xor ecx, ecx
mov cl, byte [edi + esi*4]
xor edx, edx
mov dl, byte [ebp + esi*4 + 4]
push eax
xor eax, eax
mov al, byte [ebp + esi*4]
push ecx
mov ecx, dword [esp + 0x30]
push edx
lea edx, [esp + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x50]
push ebx
push edx
call fcn.004466d0
xor eax, eax
mov al, byte [edi + esi*4 + 5]
push 0x49d610
xor ecx, ecx
mov cl, byte [edi + esi*4 + 1]
xor edx, edx
mov dl, byte [ebp + esi*4 + 5]
push eax
xor eax, eax
mov al, byte [ebp + esi*4 + 1]
push ecx
mov ecx, dword [esp + 0x30]
push edx
lea edx, [esp + 0x23]
push eax
push ecx
mov ecx, dword [esp + 0x50]
push ebx
push edx
call fcn.004466d0
xor eax, eax
mov al, byte [edi + esi*4 + 6]
push 0x49d610
xor ecx, ecx
mov cl, byte [edi + esi*4 + 2]
mov edi, dword [esp + 0x28]
xor edx, edx
mov dl, byte [ebp + esi*4 + 6]
push eax
xor eax, eax
mov al, byte [ebp + esi*4 + 2]
push ecx
lea ecx, [esp + 0x1d]
push edx
push eax
push edi
push ebx
push ecx
mov ecx, dword [esp + 0x58]
call fcn.004466d0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x74]
lea eax, [ecx + edx]
movzx ecx, byte [esi + ecx]
xor edx, edx
mov dl, byte [esi + eax + 1]
movzx eax, byte [esi + eax]
push 0x49d610
push edx
push eax
push ecx
push ecx
push edi
push ebx
lea ecx, [esp + 0x2e]
push ecx
mov ecx, dword [esp + 0x58]
call fcn.004466d0
mov eax, dword [esp + 0x110]
test eax, eax
jne 0x44e350
mov cl, byte [esp + 0x12]
xor eax, eax
test cl, cl
setne al
movzx edx, cl
mov ecx, dword [esp + 0x10c]
add eax, edx
xor edx, edx
test ecx, ecx
setne dl
add edx, ecx
imul eax, edx
sar eax, 8
cmp ax, 0x100
jne 0x44e2e2
or al, 0xff
movzx esi, byte [esp + 0x10]
movzx ecx, al
mov eax, dword [esp + 0x1c]
movzx edx, byte [eax - 2]
shl edx, 8
mov dl, byte [edx + ecx + 0x4bd618]
shl esi, 8
mov bl, byte [esi + ecx + 0x4ad618]
movzx esi, byte [esp + 0x13]
add dl, bl
mov byte [eax - 2], dl
movzx edx, byte [eax - 1]
shl edx, 8
mov dl, byte [edx + ecx + 0x4bd618]
shl esi, 8
mov bl, byte [esi + ecx + 0x4ad618]
movzx esi, byte [esp + 0x11]
add dl, bl
mov byte [eax - 1], dl
movzx edx, byte [eax]
shl edx, 8
mov dl, byte [edx + ecx + 0x4bd618]
shl esi, 8
add dl, byte [esi + ecx + 0x4ad618]
mov byte [eax], dl
jmp 0x44e42b
mov al, byte [esp + 0x12]
xor ecx, ecx
test al, al
setne cl
movzx edx, al
mov eax, dword [esp + 0x10c]
add ecx, edx
xor edx, edx
test eax, eax
setne dl
add edx, eax
imul ecx, edx
mov dl, byte [esp + 0x13]
sar ecx, 8
mov eax, ecx
mov cl, byte [esp + 0x10]
mov byte [esp + 0x18], cl
mov cl, byte [esp + 0x11]
mov byte [esp + 0x19], dl
mov byte [esp + 0x1a], cl
xor ecx, ecx
movzx edx, ax
movzx eax, byte [esp + ecx + 0x18]
imul eax, edx
sar eax, 8
cmp ax, 0xff
jbe 0x44e3ad
mov byte [esp + ecx + 0x14], 0xff
jmp 0x44e3b1
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 3
jl 0x44e395
mov ecx, dword [esp + 0x1c]
mov bl, byte [ecx - 2]
movzx edx, bl
mov eax, 0xff
sub eax, edx
movzx edx, byte [esp + 0x14]
imul eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx - 1]
mov byte [ecx - 2], al
movzx edx, bl
mov eax, 0xff
sub eax, edx
movzx edx, byte [esp + 0x15]
imul eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov bl, byte [ecx]
mov byte [ecx - 1], al
movzx edx, bl
mov eax, 0xff
sub eax, edx
movzx edx, byte [esp + 0x16]
imul eax, edx
cdq
and edx, 0xff
add eax, edx
sar eax, 8
add al, bl
mov byte [ecx], al
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x30]
add esi, 4
add eax, edx
dec ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], ecx
jne 0x44e1b0
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x4c]
add esi, edx
add edi, ecx
dec eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x4c], eax
jne 0x44e151
mov ecx, dword [esp + 0x38]
call fcn.00446f20
mov ecx, dword [esp + 0xf4]
call fcn.00446f20
pop ebx
pop esi
pop edi
xor eax, eax
pop ebp
add esp, 0xd8
ret 0x28
xor eax, eax
pop ebp
add esp, 0xd8
ret 0x28