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

Disassembly:
sub esp, 0x6c
mov al, byte [esp + 0x70]
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
mov cl, byte [esp + 0x80]
cmp al, 0xa
push edi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x30], ebx
mov byte [esi + 0x144], al
mov byte [esi + 0x145], cl
jne 0x5d74c3
cmp dword [esi + 0x104], ebx
je 0x5d74c3
mov ecx, dword [esi + 0x110]
xor edx, edx
cmp word [ecx + 0x8ea8], bx
jle 0x5d74c3
movsx eax, dx
lea edi, [eax + eax*2]
lea eax, [eax + edi*4]
shl eax, 5
inc edx
mov byte [eax + ecx + 0xd9], 0
mov ecx, dword [esi + 0x110]
cmp dx, word [ecx + 0x8ea8]
jl 0x5d749f
lea ecx, [esp + 0x74]
lea edx, [esp + 0x78]
push ecx
mov ecx, dword [esi + 0x10c]
push edx
add ecx, 0xac
call fcn.004af4e0
mov al, byte [esi + 0x144]
mov edi, dword [esp + 0x98]
mov ebp, dword [esp + 0x94]
cmp al, 0x28
mov byte [esp + 0x20], 0x32
je 0x5d750f
cmp al, 0x3c
je 0x5d7513
cmp al, 0x29
je 0x5d750f
cmp al, 0x2a
je 0x5d750f
cmp al, 0x2b
je 0x5d750f
cmp al, 0x2c
jne 0x5d7573
cmp al, 0x3c
jne 0x5d752a
fld dword [ebp]
call fcn.005faa4c
fld dword [edi]
mov dword [esp + 0x5c], eax
call fcn.005faa4c
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0xa0]
mov dword [ebp], ebx
mov dword [edi], ebx
mov word [eax], bx
mov word [ecx], bx
mov al, byte [esi + 0x144]
cmp al, 0x29
je 0x5d7559
cmp al, 0x2a
je 0x5d7559
cmp al, 0x2b
je 0x5d7559
cmp al, 0x2c
jne 0x5d7566
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x30], ebx
mov dword [ecx], ebx
cmp byte [esi + 0x144], 0xe
jne 0x5d75a7
lea edx, [esp + 0x50]
push 1
lea eax, [esp + 0x4c]
push edx
lea ecx, [esp + 0x54]
push eax
lea edx, [esp + 0x50]
push ecx
push edx
mov ecx, esi
call fcn.005d5490
test eax, eax
jne 0x5d75a7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret 0x24
mov cx, word [esi + 0x134]
mov di, word [esi + 0x122]
mov ax, word [esi + 0x132]
mov dx, word [esi + 0x136]
mov word [esp + 0x38], cx
mov cx, word [esi + 0x124]
add cx, 6
add di, 4
mov word [esp + 0x14], ax
mov ax, word [esi + 0x138]
mov word [esp + 0x24], dx
mov edx, edi
shl ecx, 1
cmp cx, bx
mov word [esp + 0x28], ax
mov dword [esp + 0x70], edi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x34], edx
mov byte [esp + 0x2c], 4
mov dword [esp + 0x68], ebx
jle 0x5d7da4
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
cmp dx, bx
mov dword [esp + 0x84], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0x64], ebx
jle 0x5d7ce2
jmp 0x5d7646
mov eax, dword [esp + 0x84]
mov ebp, dword [esp + 0x10]
xor ebx, ebx
cmp ax, bx
jl 0x5d76b2
mov edx, dword [esi + 0x110]
movsx edi, ax
cmp edi, dword [edx + 8]
jge 0x5d76b2
cmp bp, bx
jl 0x5d76b2
mov eax, dword [edx + 0xc]
movsx ebp, bp
cmp ebp, eax
jge 0x5d76b2
mov ecx, dword [esi + 0x10c]
mov dword [esp + 0x18], 1
mov ecx, dword [ecx + 0x88]
cmp ecx, ebx
je 0x5d76d8
mov al, byte [edx + 0x8ecd]
test al, al
jne 0x5d76d8
push ebp
push edi
call fcn.005deee0
mov cl, byte [esi + 0x144]
mov byte [esp + 0x80], al
cmp cl, 0x1e
je 0x5d76a8
cmp cl, 0x1f
jne 0x5d76f2
mov byte [esp + 0x80], 0xf
jmp 0x5d76f2
mov bl, byte [esi + 0x144]
mov dword [esp + 0x18], 0
cmp bl, 0x28
je 0x5d7732
cmp bl, 0x2a
jne 0x5d7c97
mov byte [esp + 0x80], 0
jmp 0x5d7740
push ebp
push edi
call fcn.005deee0
test al, al
mov byte [esp + 0x80], al
jne 0x5d76f2
mov byte [esp + 0x80], 0x80
mov bl, byte [esi + 0x144]
cmp bl, 0xb
jne 0x5d7723
mov edx, dword [esi + 0x110]
lea ecx, [edi*8]
sub ecx, edi
mov eax, dword [edx + 0x8e8c]
mov edx, dword [eax + ebp*4]
lea eax, [edx + ecx*4]
mov cl, byte [edx + ecx*4 + 9]
mov dl, byte [eax + 7]
cmp cl, dl
je 0x5d7732
mov al, byte [esp + 0x80]
cmp al, 0xf
je 0x5d773c
cmp al, 0x80
je 0x5d773c
mov byte [esp + 0x80], 0
jmp 0x5d7740
test al, al
jne 0x5d776b
cmp bl, 0xe
je 0x5d7758
cmp bl, 0x28
je 0x5d7758
cmp bl, 0x3c
je 0x5d7758
cmp bl, 0x2a
jne 0x5d7c97
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x5d776b
xor ebp, ebp
mov byte [esp + 0x3c], 0
xor cl, cl
jmp 0x5d77a9
movsx ecx, word [esp + 0x84]
mov edx, dword [esi + 0x110]
movsx eax, word [esp + 0x10]
mov edx, dword [edx + 0x8e8c]
lea edi, [ecx*8]
sub edi, ecx
mov eax, dword [edx + eax*4]
mov dl, byte [eax + edi*4 + 4]
mov cl, byte [eax + edi*4 + 6]
lea ebp, [eax + edi*4]
cmp dl, 0x13
mov byte [esp + 0x3c], dl
jb 0x5d77a9
mov byte [esp + 0x3c], 0
mov dx, word [esi + 0x11c]
mov eax, dword [esp + 0x38]
movzx cx, cl
imul ecx, edx
sub eax, ecx
mov ecx, dword [esp + 0x3c]
and ecx, 0xff
mov dword [esp + 0x18], eax
lea edi, [ecx - 2]
cmp edi, 0xe
ja case.default.0x5d77db
xor eax, eax
mov al, byte [edi + 0x5d7e9c]
jmp dword [eax*4 + 0x5d7e94]
sub dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
movsx edx, word [esp + 0x1c]
cmp edx, dword [esi + 0x98]
jg 0x5d7865
mov edi, dword [esi + 0x9c]
movsx eax, ax
cmp eax, edi
jg 0x5d7865
mov eax, dword [esi + 0x110]
lea edi, [ecx + ecx*2 + 0xc]
movsx edi, word [eax + edi*2]
add edi, edx
mov edx, dword [esi + 0x90]
cmp edi, edx
jle 0x5d7865
lea ecx, [ecx + ecx*2]
movsx edx, word [eax + ecx*2 + 0x1a]
movsx eax, word [esp + 0x18]
add edx, eax
mov eax, dword [esi + 0x94]
cmp edx, eax
jle 0x5d7865
cmp bl, 0xe
jne 0x5d7861
movsx eax, word [esp + 0x84]
cmp eax, dword [esp + 0x44]
jl 0x5d7865
cmp eax, dword [esp + 0x48]
jg 0x5d7865
movsx eax, word [esp + 0x10]
cmp eax, dword [esp + 0x4c]
jl 0x5d7865
cmp eax, dword [esp + 0x50]
jg 0x5d7865
xor eax, eax
jmp 0x5d786a
mov eax, 1
cmp bl, 0xa
je 0x5d7b02
cmp bl, 0x1e
je 0x5d7b02
cmp bl, 0x1f
je 0x5d7b02
cmp bl, 0x20
je 0x5d7b02
cmp bl, 0x15
je 0x5d7b02
cmp bl, 0xb
je 0x5d7b02
cmp bl, 0xe
je 0x5d7b02
mov al, byte [esp + 0x80]
cmp al, 0xf
je 0x5d78bc
cmp al, 0x80
jne 0x5d795a
cmp bl, 0x29
je 0x5d78db
cmp bl, 0x2a
je 0x5d78db
cmp bl, 0x2b
je 0x5d78db
cmp bl, 0x2c
jne 0x5d795a
mov al, byte [esp + 0x80]
cmp al, 0xf
je 0x5d78fa
cmp al, 0x80
jne 0x5d78f3
mov eax, dword [esi + 0x110]
mov cl, byte [eax + 0x8ece]
test cl, cl
je 0x5d78fa
mov byte [esp + 0x54], 1
jmp 0x5d78ff
mov byte [esp + 0x54], 0
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x90]
push edi
push edx
mov edx, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x98]
push edx
mov edx, dword [esp + 0x50]
push eax
mov eax, dword [esp + 0x38]
push ecx
push edx
push eax
push ebp
mov ecx, esi
call fcn.005db820
test eax, eax
je 0x5d795a
cmp byte [esi + 0x144], 0x2c
jne 0x5d79b3
mov byte [esp + 0x20], 0x34
mov edi, dword [esp + 0x94]
mov ebx, dword [esp + 0x98]
mov al, byte [esi + 0x144]
cmp al, 0x28
je 0x5d7a18
cmp al, 0x2a
jne 0x5d7985
cmp byte [esp + 0x20], 0x32
je 0x5d7a18
cmp al, 0x3c
jne 0x5d7c97
mov ecx, dword [esp + 0x84]
cmp cx, word [esp + 0x5c]
jne 0x5d7c97
mov eax, dword [esp + 0x10]
cmp ax, word [esp + 0x60]
je 0x5d7e37
jmp 0x5d7c97
test edi, edi
je 0x5d79c6
cmp eax, edi
jne 0x5d79c6
cmp byte [esp + 0x20], 0x34
je 0x5d7e1b
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x5d79f2
mov edx, dword [eax + 8]
mov ebx, dword [ecx + 8]
mov dl, byte [edx + 0x95]
cmp dl, byte [ebx + 0x95]
jae 0x5d79f2
cmp ecx, edi
jne 0x5d795a
cmp eax, edi
je 0x5d795a
mov edi, dword [esp + 0x94]
mov ecx, dword [eax + 0x38]
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x30], eax
mov dword [edi], ecx
mov edx, dword [eax + 0x3c]
mov dword [ebx], edx
mov byte [esp + 0x20], 0x34
jmp 0x5d7968
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x84]
push eax
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push eax
push ecx
push ebp
mov ecx, esi
call fcn.005db730
test eax, eax
je 0x5d7c97
test ebp, ebp
je 0x5d7aa4
mov eax, dword [esp + 0x88]
mov ecx, dword [esi + 0x110]
push ebx
push edi
mov dx, word [eax + 4]
mov ax, word [eax]
sub dx, word [esp + 0x20]
sub ax, word [esp + 0x24]
push ebp
push edx
push eax
call fcn.00481670
movsx ecx, word [esp + 0x84]
movsx edx, word [esp + 0x10]
mov dword [esp + 0x80], ecx
fild dword [esp + 0x80]
mov dword [esp + 0x80], edx
fadd dword [edi]
fstp dword [edi]
fild dword [esp + 0x80]
fadd dword [ebx]
jmp 0x5d7acf
movsx eax, word [esp + 0x84]
movsx ecx, word [esp + 0x10]
mov dword [esp + 0x80], eax
fild dword [esp + 0x80]
mov dword [esp + 0x80], ecx
fstp dword [edi]
fild dword [esp + 0x80]
mov eax, dword [esp + 0x9c]
mov dx, word [esp + 0x1c]
fstp dword [ebx]
mov cx, word [esp + 0x18]
mov word [eax], dx
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x90]
mov byte [esp + 0x20], 0x33
mov word [edx], cx
mov dword [eax], ebp
jmp 0x5d7c97
test eax, eax
jne 0x5d7bab
cmp bl, 0xa
je 0x5d7b1d
cmp bl, 0xb
je 0x5d7b1d
cmp bl, 0xe
jne 0x5d7bab
mov al, byte [ebp + 5]
mov edi, dword [esi + 0x110]
mov byte [esp + 0x40], al
mov edx, dword [esp + 0x40]
mov ecx, edx
and ecx, 0xff
lea ebx, [ecx + ecx*2]
lea ecx, [ecx + ebx*4]
shl ecx, 5
mov cx, word [ecx + edi + 0x14c]
cmp cx, 0xffff
je 0x5d7b57
mov al, cl
mov byte [esp + 0x40], al
mov edx, dword [esp + 0x40]
mov cl, byte [esi + 0x144]
cmp cl, 0xa
jne 0x5d7b9c
mov ecx, dword [esi + 0x104]
test ecx, ecx
je 0x5d7b9c
movzx ax, al
cmp ax, word [edi + 0x8ea8]
jge 0x5d7b9c
and edx, 0xff
mov ecx, edx
lea edx, [ecx + ecx*2]
lea eax, [ecx + edx*4]
shl eax, 5
lea ecx, [eax + edi + 0xd9]
mov al, byte [eax + edi + 0xd9]
inc al
mov byte [ecx], al
cmp byte [esi + 0x144], 0xb
jne 0x5d7bab
mov cl, byte [ebp + 9]
mov byte [ebp + 7], cl
mov al, byte [esp + 0x80]
cmp al, 0xf
je 0x5d7bbe
cmp al, 0x80
jne 0x5d7c97
mov al, byte [esi + 0x144]
cmp al, 0x1e
je 0x5d7bdc
cmp al, 0x1f
je 0x5d7bd8
cmp al, 0x20
je 0x5d7bd8
cmp al, 0x15
jne 0x5d7c97
cmp al, 0x1e
jne 0x5d7c26
mov edx, dword [esi + 0x100]
mov eax, dword [esi + 0x190]
mov dword [edx + 0xd0], eax
mov dword [0x73f5a8], 1
mov ecx, dword [esi + 0x100]
mov edx, dword [esi + 0x18c]
mov dword [ecx + 0xd0], edx
xor ecx, ecx
mov dword [0x73f5a8], ecx
mov eax, dword [esi + 0x100]
mov edx, dword [eax + 0xcc]
mov dword [eax + 0xd0], edx
jmp 0x5d7c28
xor ecx, ecx
cmp byte [esi + 0x144], 0x1f
jne 0x5d7c77
mov eax, dword [esi + 0x100]
mov edx, dword [esi + 0x190]
mov dword [eax + 0xd0], edx
mov dword [0x73f5a8], 1
mov eax, dword [esi + 0x100]
mov edx, dword [esi + 0x18c]
mov dword [eax + 0xd0], edx
mov dword [0x73f5a8], ecx
mov eax, dword [esi + 0x100]
mov edx, dword [eax + 0xcc]
mov dword [eax + 0xd0], edx
mov al, byte [esi + 0x144]
cmp al, 0x20
jne 0x5d7c89
mov dword [0x73f5a8], ecx
jmp 0x5d7c97
cmp al, 0x15
jne 0x5d7c97
mov dword [0x73f5a8], 0
mov ax, word [esi + 0x114]
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x84]
mov edi, dword [esp + 0x10]
add ebp, eax
mov eax, dword [esp + 0x64]
inc ebx
inc edi
inc eax
mov dword [esp + 0x1c], ebp
cmp ax, word [esp + 0x34]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0x64], eax
jl 0x5d7639
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x34]
xor ebx, ebx
cmp byte [esp + 0x2c], 1
jne 0x5d7cf3
cmp dx, di
jne 0x5d7cf3
mov byte [esp + 0x2c], 2
mov eax, dword [esp + 0x2c]
and eax, 0xff
dec eax
cmp eax, 3
ja case.default.0x5d7d02
jmp dword [eax*4 + 0x5d7eac]
mov ax, word [esi + 0x118]
inc edx
sub word [esp + 0x14], ax
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], eax
jmp case.default.0x5d7d02
mov ax, word [esi + 0x118]
mov ebp, dword [esp + 0x14]
add ebp, eax
mov eax, dword [esp + 0x28]
dec edx
inc eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], eax
jmp case.default.0x5d7d02
mov ax, word [esi + 0x118]
mov byte [esp + 0x2c], 4
sub word [esp + 0x14], ax
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
jmp case.default.0x5d7d02
mov ax, word [esi + 0x118]
mov ebp, dword [esp + 0x14]
add ebp, eax
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0x28], eax
mov byte [esp + 0x2c], 3
mov ax, word [esi + 0x11a]
mov ebp, dword [esp + 0x38]
add ebp, eax
mov eax, dword [esp + 0x68]
inc eax
mov dword [esp + 0x38], ebp
cmp ax, cx
mov dword [esp + 0x68], eax
jl 0x5d760f
cmp byte [esi + 0x144], 0xa
jne 0x5d7de2
mov ecx, dword [esi + 0x110]
xor edx, edx
cmp word [ecx + 0x8ea8], bx
jle 0x5d7de2
movsx eax, dx
lea edi, [eax + eax*2]
lea eax, [eax + edi*4]
shl eax, 5
inc edx
mov byte [eax + ecx + 0xd8], 0
mov ecx, dword [esi + 0x110]
cmp dx, word [ecx + 0x8ea8]
jl 0x5d7dbe
mov al, byte [esi + 0x144]
cmp al, 0x29
je 0x5d7df4
cmp al, 0x2a
je 0x5d7df4
cmp al, 0x2b
jne 0x5d7e08
cmp byte [esp + 0x20], 0x34
jne 0x5d7e08
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x30]
mov dword [edx], ecx
mov eax, dword [esp + 0x20]
pop edi
pop esi
pop ebp
and eax, 0xff
pop ebx
add esp, 0x6c
ret 0x24
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword [edx], ecx
mov eax, 0x34
pop ebx
add esp, 0x6c
ret 0x24
movsx ecx, cx
mov dword [esp + 0x80], ecx
mov cx, word [esp + 0x1c]
fild dword [esp + 0x80]
movsx edx, ax
fstp dword [edi]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x80], edx
fild dword [esp + 0x80]
mov dx, word [esp + 0x18]
pop edi
pop esi
fstp dword [ebx]
mov word [eax], cx
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x88]
mov word [eax], dx
mov eax, 0x33
mov dword [ecx], ebp
pop ebp
pop ebx
add esp, 0x6c
ret 0x24