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

Disassembly:
sub esp, 0x64
mov eax, dword [0x680f10]
xor eax, esp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x70]
push ebx
push ebp
mov ebp, dword [esp + 0x70]
mov ebx, dword [ebp]
cmp ebx, 0x10
push esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0xc], eax
jne 0x57e486
mov edx, dword [ebp + 0xbc]
lea ecx, [ebp + 0x134]
push ecx
push edx
push eax
mov eax, dword [ebp + 0x164]
push esi
call eax
add esp, 0x10
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.0044abb9
add esp, 0x64
ret
mov ecx, dword [ebp + 0x28]
test ecx, ecx
push edi
jbe 0x57e49b
shr ecx, 1
lea edi, [esp + 0x30]
rep movsd dword es:[edi], dword [esi]
adc ecx, ecx
rep movsw word es:[edi], word [esi]
test ebx, 0x10000
je 0x57e4fd
mov ax, word [esp + 0x30]
cmp ax, 0xff00
jbe 0x57e4b2
mov ax, 0xff00
movzx esi, word [esp + 0x32]
movzx ecx, word [esp + 0x34]
imul esi, esi, 0x101
movzx edi, ax
imul ecx, ecx, 0x101
imul edi, edi, 0x101
add edi, 0x80
add esi, 0x80
sar edi, 8
sar esi, 8
add ecx, 0x80
sar ecx, 8
mov word [esp + 0x30], di
mov word [esp + 0x32], si
mov word [esp + 0x34], cx
jmp 0x57e50c
mov cx, word [esp + 0x34]
mov si, word [esp + 0x32]
mov di, word [esp + 0x30]
test ebx, 0x40000
je 0x57e580
movzx edx, di
shl edx, 8
add edx, 0x80
mov eax, 0x7f807f81
imul edx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov di, ax
movzx edx, si
shl edx, 8
add edx, 0x80
mov eax, 0x7f807f81
imul edx
sar edx, 7
movzx ecx, cx
mov eax, edx
shr eax, 0x1f
add eax, edx
shl ecx, 8
mov si, ax
add ecx, 0x80
mov eax, 0x7f807f81
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov word [esp + 0x30], di
mov word [esp + 0x32], si
mov word [esp + 0x34], cx
test bl, 1
je 0x57e6d6
cmp dword [ebp + 0x2c8], 0
je 0x57e5d6
movzx esi, si
sub esi, 0x80
jns 0x57e5a2
xor si, si
jmp 0x57e5af
cmp esi, 0xffff
jle 0x57e5af
or si, 0xffff
movzx ecx, cx
sub ecx, 0x80
mov word [esp + 0x32], si
jns 0x57e5c4
xor cx, cx
jmp 0x57e5d1
cmp ecx, 0xffff
jle 0x57e5d1
or cx, 0xffff
mov word [esp + 0x34], cx
movzx edi, di
lea ebx, [edi + 0x7fff]
mov eax, 0x80008001
imul ebx
add edx, ebx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
mov dword [esp + 0x14], eax
movzx esi, si
lea edi, [esi + 0x7fff]
mov eax, 0x80008001
imul edi
add edx, edi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, esi
mov dword [esp + 0x18], eax
movzx ecx, cx
lea esi, [ecx + 0x7fff]
mov eax, 0x80008001
imul esi
add edx, esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ecx
lea ecx, [esp + 0x14]
push ecx
lea edx, [ebp + 4]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x28]
push eax
call fcn.0057cff0
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0x7fff]
sar ecx, 0x10
add esp, 0xc
sub eax, ecx
jns 0x57e668
xor di, di
jmp 0x57e679
cmp eax, 0xffff
jle 0x57e676
or di, 0xffff
jmp 0x57e679
mov di, ax
mov eax, dword [esp + 0x24]
lea edx, [eax + 0x7fff]
sar edx, 0x10
sub eax, edx
mov word [esp + 0x30], di
jns 0x57e694
xor si, si
jmp 0x57e6a5
cmp eax, 0xffff
jle 0x57e6a2
or si, 0xffff
jmp 0x57e6a5
mov si, ax
mov eax, dword [esp + 0x28]
lea ecx, [eax + 0x7fff]
sar ecx, 0x10
sub eax, ecx
mov word [esp + 0x32], si
jns 0x57e6c0
xor cx, cx
jmp 0x57e6d1
cmp eax, 0xffff
jle 0x57e6ce
or cx, 0xffff
jmp 0x57e6d1
mov cx, ax
mov word [esp + 0x34], cx
test byte [ebp], 2
je 0x57e721
xor ebx, ebx
cmp dword [ebp + 0x28], ebx
jbe 0x57e721
lea edi, [ebp + 0xc4]
lea esi, [ebp + 0x3c]
lea esp, [esp]
mov edx, dword [esi]
movzx eax, word [esp + ebx*2 + 0x30]
push edi
push edx
push eax
call fcn.00580420
mov word [esp + ebx*2 + 0x3c], ax
add ebx, 1
add esp, 0xc
add esi, 4
cmp ebx, dword [ebp + 0x28]
jb 0x57e6f0
mov cx, word [esp + 0x34]
mov si, word [esp + 0x32]
mov di, word [esp + 0x30]
test byte [ebp], 0x20
je 0x57e845
movzx edi, di
lea ebx, [edi + 0x7fff]
mov eax, 0x80008001
imul ebx
add edx, ebx
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, edi
mov dword [esp + 0x20], eax
movzx esi, si
lea edi, [esi + 0x7fff]
mov eax, 0x80008001
imul edi
add edx, edi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, esi
mov dword [esp + 0x24], eax
movzx ecx, cx
lea esi, [ecx + 0x7fff]
mov eax, 0x80008001
imul esi
add edx, esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ecx
lea ecx, [esp + 0x20]
push ecx
lea edx, [ebp + 0x170]
mov dword [esp + 0x2c], eax
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.0057cff0
mov eax, dword [esp + 0x20]
add eax, dword [ebp + 0x194]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
add ecx, dword [ebp + 0x198]
add edx, dword [ebp + 0x19c]
lea esi, [eax + 0x7fff]
sar esi, 0x10
add esp, 0xc
sub eax, esi
jns 0x57e7de
mov word [esp + 0x30], 0
jmp 0x57e7f1
cmp eax, 0xffff
mov word [esp + 0x30], 0xffff
jg 0x57e7f1
mov word [esp + 0x30], ax
lea eax, [ecx + 0x7fff]
sar eax, 0x10
sub ecx, eax
jns 0x57e807
mov word [esp + 0x32], 0
jmp 0x57e81b
cmp ecx, 0xffff
mov word [esp + 0x32], 0xffff
jg 0x57e81b
mov word [esp + 0x32], cx
lea ecx, [edx + 0x7fff]
sar ecx, 0x10
sub edx, ecx
jns 0x57e831
mov word [esp + 0x34], 0
jmp 0x57e845
cmp edx, 0xffff
mov word [esp + 0x34], 0xffff
jg 0x57e845
mov word [esp + 0x34], dx
test dword [ebp], 0x100
je 0x57e883
xor esi, esi
cmp dword [ebp + 0x28], esi
jbe 0x57e883
lea ebx, [ebp + 0x1e0]
lea edi, [ebp + 0x1a0]
mov edx, dword [edi]
movzx eax, word [esp + esi*2 + 0x30]
push ebx
push edx
push eax
call fcn.00580420
mov word [esp + esi*2 + 0x3c], ax
add esi, 1
add esp, 0xc
add edi, 4
cmp esi, dword [ebp + 0x28]
jb 0x57e861
test byte [ebp], 0x10
je 0x57e8ae
mov edx, dword [ebp + 0xbc]
lea ecx, [ebp + 0x134]
push ecx
push edx
mov edx, dword [ebp + 0x164]
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0x3c]
push ecx
call edx
add esp, 0x10
jmp 0x57e8c6
mov ecx, dword [ebp + 0x28]
test ecx, ecx
jbe 0x57e8c6
shr ecx, 1
lea esi, [esp + 0x30]
lea edi, [esp + 0x50]
rep movsd dword es:[edi], dword [esi]
adc ecx, ecx
rep movsw word es:[edi], word [esi]
test dword [ebp], 0x200
je 0x57e904
xor esi, esi
cmp dword [ebp + 0x2c], esi
jbe 0x57e904
lea ebx, [ebp + 0x28c]
lea edi, [ebp + 0x24c]
mov eax, dword [edi]
movzx ecx, word [esp + esi*2 + 0x50]
push ebx
push eax
push ecx
call fcn.00580420
mov word [esp + esi*2 + 0x5c], ax
add esi, 1
add esp, 0xc
add edi, 4
cmp esi, dword [ebp + 0x2c]
jb 0x57e8e2
test byte [ebp], 0x40
je 0x57ea22
movzx ecx, word [esp + 0x50]
lea esi, [ecx + 0x7fff]
mov eax, 0x80008001
imul esi
add edx, esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ecx
movzx ecx, word [esp + 0x52]
mov dword [esp + 0x20], eax
lea esi, [ecx + 0x7fff]
mov eax, 0x80008001
imul esi
add edx, esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ecx
movzx ecx, word [esp + 0x54]
mov dword [esp + 0x24], eax
lea esi, [ecx + 0x7fff]
mov eax, 0x80008001
imul esi
add edx, esi
sar edx, 0xf
mov eax, edx
shr eax, 0x1f
add eax, edx
add eax, ecx
lea ecx, [esp + 0x20]
push ecx
lea edx, [ebp + 0x21c]
mov dword [esp + 0x2c], eax
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.0057cff0
mov eax, dword [esp + 0x20]
add eax, dword [ebp + 0x240]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
add ecx, dword [ebp + 0x244]
add edx, dword [ebp + 0x248]
lea esi, [eax + 0x7fff]
sar esi, 0x10
add esp, 0xc
sub eax, esi
mov esi, 0xffff
jns 0x57e9cc
mov word [esp + 0x50], 0
jmp 0x57e9da
cmp eax, esi
mov word [esp + 0x50], si
jg 0x57e9da
mov word [esp + 0x50], ax
lea eax, [ecx + 0x7fff]
sar eax, 0x10
sub ecx, eax
jns 0x57e9f0
mov word [esp + 0x52], 0
jmp 0x57e9fe
cmp ecx, esi
mov word [esp + 0x52], si
jg 0x57e9fe
mov word [esp + 0x52], cx
lea ecx, [edx + 0x7fff]
sar ecx, 0x10
sub edx, ecx
jns 0x57ea14
mov word [esp + 0x54], 0
jmp 0x57ea22
cmp edx, esi
mov word [esp + 0x54], si
jg 0x57ea22
mov word [esp + 0x54], dx
test byte [ebp], 8
je 0x57ea86
cmp dword [ebp + 0x2c], 0
mov dword [esp + 0x2c], 0
jbe 0x57eab4
mov edi, dword [esp + 0x10]
lea eax, [esp + 0x50]
sub eax, edi
mov esi, edi
lea ebx, [ebp + 0x7c]
mov dword [esp + 0x10], eax
lea esp, [esp]
mov edx, dword [ebx]
lea eax, [ebp + 0xfc]
push eax
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + esi]
push edx
push ecx
call fcn.00580420
mov word [esi], ax
mov eax, dword [esp + 0x38]
add eax, 1
add esp, 0xc
add ebx, 4
add esi, 2
cmp eax, dword [ebp + 0x2c]
mov dword [esp + 0x2c], eax
jb 0x57ea50
jmp 0x57eab8
xor ecx, ecx
cmp dword [ebp + 0x2c], ecx
jbe 0x57eab4
mov edi, dword [esp + 0x10]
lea edx, [esp + 0x50]
mov eax, edi
sub edx, edi
lea esp, [esp]
mov si, word [eax + edx]
mov word [eax], si
add ecx, 1
add eax, 2
cmp ecx, dword [ebp + 0x2c]
jb 0x57eaa0
jmp 0x57eab8
mov edi, dword [esp + 0x10]
test dword [ebp], 0x20000
je 0x57eb25
movzx ecx, word [edi]
shl ecx, 8
add ecx, 0x80
mov eax, 0x7f807f81
imul ecx
movzx ecx, word [edi + 2]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
shl ecx, 8
mov word [edi], ax
add ecx, 0x80
mov eax, 0x7f807f81
imul ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov word [edi + 2], cx
movzx ecx, word [edi + 4]
shl ecx, 8
add ecx, 0x80
mov eax, 0x7f807f81
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov word [edi + 4], ax
test dword [ebp], 0x80000
je 0x57eb70
movzx ecx, word [edi]
movzx edx, word [edi + 2]
imul ecx, ecx, 0x101
movzx eax, word [edi + 4]
imul edx, edx, 0x101
imul eax, eax, 0x101
add ecx, 0x80
add edx, 0x80
sar ecx, 8
sar edx, 8
add eax, 0x80
sar eax, 8
mov word [edi], cx
mov word [edi + 2], dx
mov word [edi + 4], ax
mov ecx, dword [esp + 0x70]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0044abb9
add esp, 0x64
ret