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

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffff58
mov ebx, eax
xor eax, eax
mov al, byte [ebx + 0xe6]
mov dword [esp], eax
test byte [ebx + 0x31], 1
je case.0x571663.0
test byte [ebx + 0x31], 0x10
je case.0x571663.0
test byte [esp], 2
jne 0x571755
xor edx, edx
mov dl, byte [ebx + 0xe7]
cmp edx, 0x10
ja case.0x571663.0
mov dl, byte [edx + 0x57166a]
jmp dword [edx*4 + 0x57167b]
mov cx, word [ebx + 0x100]
mov eax, ecx
shl ecx, 8
sub ecx, eax
mov word [ebx + 0x100], cx
mov dx, word [ebx + 0x100]
mov word [ebx + 0xfe], dx
mov word [ebx + 0xfc], dx
mov word [ebx + 0xfa], dx
jmp case.0x571663.0
mov ax, word [ebx + 0x100]
mov ecx, eax
shl eax, 4
add eax, ecx
lea eax, [eax + eax*4]
mov word [ebx + 0x100], ax
mov ax, word [ebx + 0x100]
mov word [ebx + 0xfe], ax
mov word [ebx + 0xfc], ax
mov word [ebx + 0xfa], ax
jmp case.0x571663.0
mov dx, word [ebx + 0x100]
mov ecx, edx
shl edx, 4
add edx, ecx
mov word [ebx + 0x100], dx
mov ax, word [ebx + 0x100]
mov word [ebx + 0xfe], ax
mov word [ebx + 0xfc], ax
mov word [ebx + 0xfa], ax
jmp case.0x571663.0
mov dx, word [ebx + 0x100]
mov word [ebx + 0xfe], dx
mov word [ebx + 0xfc], dx
mov word [ebx + 0xfa], dx
jmp case.0x571663.0
mov eax, dword [esp]
cmp eax, 3
jne case.0x571663.0
xor ecx, ecx
mov cl, byte [ebx + 0xf8]
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + 0xd4]
xor ecx, ecx
mov cl, byte [edx + eax]
mov word [ebx + 0xfa], cx
xor eax, eax
mov al, byte [ebx + 0xf8]
lea edx, [eax + eax*2]
mov ecx, dword [ebx + 0xd4]
xor eax, eax
mov al, byte [ecx + edx + 1]
mov word [ebx + 0xfc], ax
xor edx, edx
mov dl, byte [ebx + 0xf8]
lea ecx, [edx + edx*2]
mov eax, dword [ebx + 0xd4]
xor edx, edx
mov dl, byte [eax + ecx + 2]
mov word [ebx + 0xfe], dx
test byte [ebx + 0x32], 8
je case.0x571663.0
test byte [ebx + 0x31], 0x10
jne case.0x571663.0
movzx ecx, word [ebx + 0xda]
mov dword [esp + 8], ecx
xor eax, eax
mov dword [esp + 4], eax
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
cmp edx, ecx
jge case.0x571663.0
mov eax, dword [ebx + 0x148]
mov edx, dword [esp + 4]
mov cl, 0xff
mov al, byte [eax + edx]
sub cl, al
mov edx, dword [ebx + 0x148]
mov eax, dword [esp + 4]
mov byte [edx + eax], cl
inc dword [esp + 4]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
cmp edx, ecx
jl 0x5717e3
mov eax, dword [ebx + 0xf8]
mov dword [ebx + 0x102], eax
mov eax, dword [ebx + 0xfc]
mov dword [ebx + 0x106], eax
mov ax, word [ebx + 0x100]
mov word [ebx + 0x10a], ax
mov edx, dword [esp]
cmp edx, 3
jne 0x5718b3
cmp word [ebx + 0xda], 0
je 0x5718b3
fld dword [ebx + 0x120]
fmul dword [ebx + 0x11c]
fsub dword [0x57240c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b51c
add esp, 8
fcomp qword [0x572410]
fnstsw ax
sahf
jae 0x5718b3
xor edx, edx
mov dword [esp + 0xc], edx
xor edx, edx
mov eax, dword [ebx + 0x148]
jmp 0x571899
mov cl, byte [eax]
test cl, cl
je 0x571897
cmp cl, 0xff
je 0x571897
mov dword [esp + 0xc], 1
inc edx
inc eax
movzx ecx, word [ebx + 0xda]
cmp edx, ecx
jl 0x571884
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x5718b3
and dword [ebx + 0x30], 0xffffdfff
test dword [ebx + 0x30], 0x602000
je 0x572198
mov eax, ebx
call fcn.00575cb0
test byte [ebx + 0x30], 0x80
je 0x57212f
mov edx, dword [esp]
cmp edx, 3
jne 0x571de2
mov ecx, dword [ebx + 0xd4]
mov dword [esp + 0x18], ecx
movzx eax, word [ebx + 0xd8]
mov dword [esp + 0x1c], eax
mov dl, byte [ebx + 0xf0]
cmp dl, 2
jne 0x57197a
movzx ecx, word [ebx + 0xfa]
mov eax, dword [ebx + 0x124]
mov dl, byte [eax + ecx]
mov byte [esp + 0x10], dl
movzx ecx, word [ebx + 0xfc]
mov eax, dword [ebx + 0x124]
mov dl, byte [eax + ecx]
mov byte [esp + 0x11], dl
movzx ecx, word [ebx + 0xfe]
mov eax, dword [ebx + 0x124]
mov dl, byte [eax + ecx]
mov byte [esp + 0x12], dl
movzx ecx, word [ebx + 0xfa]
mov eax, dword [ebx + 0x12c]
mov dl, byte [eax + ecx]
mov byte [esp + 0x13], dl
movzx ecx, word [ebx + 0xfc]
mov eax, dword [ebx + 0x12c]
mov dl, byte [eax + ecx]
mov byte [esp + 0x14], dl
movzx ecx, word [ebx + 0xfe]
mov eax, dword [ebx + 0x12c]
mov dl, byte [eax + ecx]
mov byte [esp + 0x15], dl
jmp 0x571bf2
mov cl, byte [ebx + 0xf0]
dec cl
je 0x57198e
dec cl
je 0x5719a8
dec cl
je 0x5719d0
jmp 0x5719f8
fld dword [ebx + 0x120]
fstp qword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], 0x3ff00000
jmp 0x571a14
fld dword [0x57240c]
fdiv dword [ebx + 0x11c]
fstp qword [esp + 0x20]
fld dword [ebx + 0x11c]
fmul dword [ebx + 0x120]
fdivr dword [0x57240c]
fstp qword [esp + 0x28]
jmp 0x571a14
fld dword [0x57240c]
fdiv dword [ebx + 0xf4]
fstp qword [esp + 0x20]
fld dword [ebx + 0xf4]
fmul dword [ebx + 0x120]
fdivr dword [0x57240c]
fstp qword [esp + 0x28]
jmp 0x571a14
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], 0x3ff00000
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], 0x3ff00000
fld qword [esp + 0x28]
fsub dword [0x57240c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b51c
add esp, 8
fcomp qword [0x572410]
fnstsw ax
sahf
jae 0x571a5a
mov dl, byte [ebx + 0xfa]
mov byte [esp + 0x10], dl
mov cl, byte [ebx + 0xfc]
mov byte [esp + 0x11], cl
mov al, byte [ebx + 0xfe]
mov byte [esp + 0x12], al
jmp 0x571b20
push dword [esp + 0x2c]
push dword [esp + 0x2c]
movzx ecx, word [ebx + 0xfa]
mov dword [esp + 0x70], ecx
fild dword [esp + 0x70]
fld xword [0x572418]
fmulp st(1)
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul dword [0x572424]
fadd dword [0x572428]
call fcn.0052b620
mov byte [esp + 0x10], al
push dword [esp + 0x2c]
push dword [esp + 0x2c]
movzx ecx, word [ebx + 0xfc]
mov dword [esp + 0x74], ecx
fild dword [esp + 0x74]
fld xword [0x572418]
fmulp st(1)
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul dword [0x572424]
fadd dword [0x572428]
call fcn.0052b620
mov byte [esp + 0x11], al
push dword [esp + 0x2c]
push dword [esp + 0x2c]
movzx ecx, word [ebx + 0xfe]
mov dword [esp + 0x78], ecx
fild dword [esp + 0x78]
fld xword [0x572418]
fmulp st(1)
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul dword [0x572424]
fadd dword [0x572428]
call fcn.0052b620
mov byte [esp + 0x12], al
push dword [esp + 0x24]
push dword [esp + 0x24]
movzx ecx, word [ebx + 0xfa]
mov dword [esp + 0x7c], ecx
fild dword [esp + 0x7c]
fld xword [0x572418]
fmulp st(1)
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul dword [0x572424]
fadd dword [0x572428]
call fcn.0052b620
mov byte [esp + 0x13], al
push dword [esp + 0x24]
push dword [esp + 0x24]
movzx ecx, word [ebx + 0xfc]
mov dword [esp + 0x80], ecx
fild dword [esp + 0x80]
fld xword [0x572418]
fmulp st(1)
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul dword [0x572424]
fadd dword [0x572428]
call fcn.0052b620
mov byte [esp + 0x14], al
push dword [esp + 0x24]
push dword [esp + 0x24]
movzx ecx, word [ebx + 0xfe]
mov dword [esp + 0x84], ecx
fild dword [esp + 0x84]
fld xword [0x572418]
fmulp st(1)
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul dword [0x572424]
fadd dword [0x572428]
call fcn.0052b620
mov byte [esp + 0x15], al
xor esi, esi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
cmp esi, edx
jge 0x57232e
movzx ecx, word [ebx + 0xda]
cmp esi, ecx
jge 0x571d9c
mov edx, dword [ebx + 0x148]
mov cl, byte [edx + esi]
cmp cl, 0xff
je 0x571d9c
mov edx, dword [ebx + 0x148]
mov cl, byte [edx + esi]
test cl, cl
jne 0x571c46
mov dx, word [esp + 0x10]
mov word [eax], dx
mov dl, byte [esp + 0x12]
mov byte [eax + 2], dl
jmp 0x571dcd
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebx + 0x12c]
mov cl, byte [edx + ecx]
mov edx, dword [ebx + 0x148]
and ecx, 0xff
movzx ecx, cx
movzx edx, byte [edx + esi]
movzx edx, dx
imul edx, ecx
mov ecx, dword [ebx + 0x148]
mov di, 0xff
movzx ecx, byte [ecx + esi]
sub di, cx
movzx ecx, di
movzx edi, byte [esp + 0x13]
movzx edi, di
imul ecx, edi
add dx, cx
add dx, 0x80
movzx ecx, dx
movzx edx, dx
sar edx, 8
add ecx, edx
sar ecx, 8
mov byte [esp + 0x30], cl
xor edx, edx
mov dl, byte [esp + 0x30]
mov ecx, dword [ebx + 0x128]
mov dl, byte [ecx + edx]
mov byte [eax], dl
xor ecx, ecx
mov cl, byte [eax + 1]
mov edx, dword [ebx + 0x12c]
mov cl, byte [edx + ecx]
mov edx, dword [ebx + 0x148]
and ecx, 0xff
movzx ecx, cx
movzx edx, byte [edx + esi]
movzx edx, dx
imul edx, ecx
mov ecx, dword [ebx + 0x148]
mov di, 0xff
movzx ecx, byte [ecx + esi]
sub di, cx
movzx ecx, di
movzx edi, byte [esp + 0x14]
movzx edi, di
imul ecx, edi
add dx, cx
add dx, 0x80
movzx ecx, dx
movzx edx, dx
sar edx, 8
add ecx, edx
sar ecx, 8
mov byte [esp + 0x30], cl
xor edx, edx
mov dl, byte [esp + 0x30]
mov ecx, dword [ebx + 0x128]
mov dl, byte [ecx + edx]
mov byte [eax + 1], dl
xor ecx, ecx
mov cl, byte [eax + 2]
mov edx, dword [ebx + 0x12c]
mov cl, byte [edx + ecx]
mov edx, dword [ebx + 0x148]
and ecx, 0xff
movzx ecx, cx
movzx edx, byte [edx + esi]
movzx edx, dx
imul edx, ecx
mov ecx, dword [ebx + 0x148]
mov di, 0xff
movzx ecx, byte [ecx + esi]
sub di, cx
movzx ecx, di
movzx edi, byte [esp + 0x15]
movzx edi, di
imul ecx, edi
add dx, cx
add dx, 0x80
movzx ecx, dx
movzx edx, dx
sar edx, 8
add ecx, edx
sar ecx, 8
mov byte [esp + 0x30], cl
xor edx, edx
mov dl, byte [esp + 0x30]
mov ecx, dword [ebx + 0x128]
mov dl, byte [ecx + edx]
mov byte [eax + 2], dl
jmp 0x571dcd
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebx + 0x124]
mov cl, byte [edx + ecx]
mov byte [eax], cl
xor edx, edx
mov dl, byte [eax + 1]
mov ecx, dword [ebx + 0x124]
mov dl, byte [ecx + edx]
mov byte [eax + 1], dl
xor ecx, ecx
mov cl, byte [eax + 2]
mov edx, dword [ebx + 0x124]
mov cl, byte [edx + ecx]
mov byte [eax + 2], cl
inc esi
add eax, 3
mov edx, dword [esp + 0x1c]
cmp esi, edx
jl 0x571c04
jmp 0x57232e
mov cl, byte [ebx + 0xe7]
mov eax, 1
shl eax, cl
dec eax
xor edx, edx
mov dword [esp + 0x80], eax
xor eax, eax
mov dword [esp + 0x84], eax
xor ecx, ecx
fild qword [esp + 0x80]
fstp qword [esp + 0x34]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], 0x3ff00000
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], 0x3ff00000
mov al, byte [ebx + 0xf0]
dec al
je 0x571e3b
dec al
je 0x571e55
dec al
je 0x571e7d
jmp 0x571ea3
fld dword [ebx + 0x120]
fstp qword [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], 0x3ff00000
jmp 0x571ea3
fld dword [0x57240c]
fdiv dword [ebx + 0x11c]
fstp qword [esp + 0x3c]
fld dword [ebx + 0x11c]
fmul dword [ebx + 0x120]
fdivr dword [0x57240c]
fstp qword [esp + 0x44]
jmp 0x571ea3
fld dword [0x57240c]
fdiv dword [ebx + 0xf4]
fstp qword [esp + 0x3c]
fld dword [ebx + 0xf4]
fmul dword [ebx + 0x120]
fdivr dword [0x57240c]
fstp qword [esp + 0x44]
push dword [esp + 0x40]
push dword [esp + 0x40]
movzx eax, word [ebx + 0x100]
mov dword [esp + 0x90], eax
fild dword [esp + 0x90]
fdiv qword [esp + 0x3c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul qword [esp + 0x34]
fadd dword [0x572428]
call fcn.0052b620
mov word [ebx + 0x10a], ax
push dword [esp + 0x48]
push dword [esp + 0x48]
movzx ecx, word [ebx + 0x100]
mov dword [esp + 0x94], ecx
fild dword [esp + 0x94]
fdiv qword [esp + 0x3c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul qword [esp + 0x34]
fadd dword [0x572428]
call fcn.0052b620
mov word [ebx + 0x100], ax
mov si, word [ebx + 0xfa]
cmp si, word [ebx + 0xfc]
jne 0x571f53
cmp si, word [ebx + 0xfe]
jne 0x571f53
cmp si, word [ebx + 0x100]
je 0x5720f2
push dword [esp + 0x40]
push dword [esp + 0x40]
movzx edx, si
mov dword [esp + 0x98], edx
fild dword [esp + 0x98]
fdiv qword [esp + 0x3c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul qword [esp + 0x34]
fadd dword [0x572428]
call fcn.0052b620
mov word [ebx + 0x104], ax
push dword [esp + 0x40]
push dword [esp + 0x40]
movzx ecx, word [ebx + 0xfc]
mov dword [esp + 0x9c], ecx
fild dword [esp + 0x9c]
fdiv qword [esp + 0x3c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul qword [esp + 0x34]
fadd dword [0x572428]
call fcn.0052b620
mov word [ebx + 0x106], ax
push dword [esp + 0x40]
push dword [esp + 0x40]
movzx ecx, word [ebx + 0xfe]
mov dword [esp + 0xa0], ecx
fild dword [esp + 0xa0]
fdiv qword [esp + 0x3c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul qword [esp + 0x34]
fadd dword [0x572428]
call fcn.0052b620
mov word [ebx + 0x108], ax
push dword [esp + 0x48]
push dword [esp + 0x48]
movzx ecx, word [ebx + 0xfa]
mov dword [esp + 0xa4], ecx
fild dword [esp + 0xa4]
fdiv qword [esp + 0x3c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul qword [esp + 0x34]
fadd dword [0x572428]
call fcn.0052b620
mov word [ebx + 0xfa], ax
push dword [esp + 0x48]
push dword [esp + 0x48]
movzx ecx, word [ebx + 0xfc]
mov dword [esp + 0xa8], ecx
fild dword [esp + 0xa8]
fdiv qword [esp + 0x3c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul qword [esp + 0x34]
fadd dword [0x572428]
call fcn.0052b620
mov word [ebx + 0xfc], ax
push dword [esp + 0x48]
push dword [esp + 0x48]
movzx ecx, word [ebx + 0xfe]
mov dword [esp + 0xac], ecx
fild dword [esp + 0xac]
fdiv qword [esp + 0x3c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0052b560
add esp, 0x10
fmul qword [esp + 0x34]
fadd dword [0x572428]
call fcn.0052b620
mov word [ebx + 0xfe], ax
jmp 0x57232e
mov dx, word [ebx + 0x10a]
mov word [ebx + 0x108], dx
mov word [ebx + 0x106], dx
mov word [ebx + 0x104], dx
mov ax, word [ebx + 0x100]
mov word [ebx + 0xfe], ax
mov word [ebx + 0xfc], ax
mov word [ebx + 0xfa], ax
jmp 0x57232e
mov edx, dword [esp]
cmp edx, 3
jne 0x57232e
mov ecx, dword [ebx + 0xd4]
mov dword [esp + 0x4c], ecx
movzx esi, word [ebx + 0xd8]
xor edx, edx
mov eax, dword [esp + 0x4c]
cmp esi, edx
jle 0x57232e
xor ecx, ecx
mov edi, dword [ebx + 0x124]
mov cl, byte [eax]
inc edx
mov cl, byte [edi + ecx]
mov byte [eax], cl
xor ecx, ecx
mov cl, byte [eax + 1]
mov edi, dword [ebx + 0x124]
mov cl, byte [edi + ecx]
mov byte [eax + 1], cl
xor ecx, ecx
mov cl, byte [eax + 2]
mov edi, dword [ebx + 0x124]
mov cl, byte [edi + ecx]
mov byte [eax + 2], cl
add eax, 3
cmp esi, edx
jg 0x57215a
jmp 0x57232e
test byte [ebx + 0x30], 0x80
je 0x57232e
mov eax, dword [esp]
cmp eax, 3
jne 0x57232e
movzx edx, word [ebx + 0xda]
mov dword [esp + 0x50], edx
mov eax, dword [ebx + 0xd4]
mov dword [esp + 0x58], eax
mov dl, byte [ebx + 0xfa]
mov byte [esp + 0x54], dl
mov cl, byte [ebx + 0xfc]
mov byte [esp + 0x55], cl
mov al, byte [ebx + 0xfe]
mov byte [esp + 0x56], al
xor edx, edx
mov ecx, dword [esp + 0x58]
mov eax, ecx
mov ecx, dword [esp + 0x50]
cmp edx, ecx
jge 0x57232e
mov ecx, dword [ebx + 0x148]
mov cl, byte [ecx + edx]
test cl, cl
jne 0x572216
mov cx, word [esp + 0x54]
mov word [eax], cx
mov cl, byte [esp + 0x56]
mov byte [eax + 2], cl
jmp 0x57231e
mov ecx, dword [ebx + 0x148]
mov cl, byte [ecx + edx]
cmp cl, 0xff
je 0x57231e
mov ecx, dword [ebx + 0x148]
mov di, 0xff
movzx esi, byte [ecx + edx]
xor ecx, ecx
movzx esi, si
mov cl, byte [eax]
movzx ecx, cx
imul esi, ecx
mov ecx, dword [ebx + 0x148]
movzx ecx, byte [ecx + edx]
sub di, cx
movzx ecx, di
movzx edi, byte [esp + 0x54]
movzx edi, di
imul ecx, edi
add si, cx
add si, 0x80
movzx ecx, si
movzx esi, si
sar esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax], cl
mov ecx, dword [ebx + 0x148]
mov di, 0xff
movzx esi, byte [ecx + edx]
xor ecx, ecx
movzx esi, si
mov cl, byte [eax + 1]
movzx ecx, cx
imul esi, ecx
mov ecx, dword [ebx + 0x148]
movzx ecx, byte [ecx + edx]
sub di, cx
movzx ecx, di
movzx edi, byte [esp + 0x55]
movzx edi, di
imul ecx, edi
add si, cx
add si, 0x80
movzx ecx, si
movzx esi, si
sar esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax + 1], cl
mov ecx, dword [ebx + 0x148]
movzx esi, byte [eax + 2]
movzx ecx, byte [ecx + edx]
movzx ecx, cx
movzx esi, si
imul ecx, esi
mov esi, dword [ebx + 0x148]
mov di, 0xff
movzx esi, byte [esi + edx]
sub di, si
movzx esi, di
movzx edi, byte [esp + 0x56]
movzx edi, di
imul esi, edi
add cx, si
add cx, 0x80
mov word [esp + 0x5c], cx
movzx esi, word [esp + 0x5c]
movzx ecx, word [esp + 0x5c]
sar esi, 8
add ecx, esi
sar ecx, 8
mov byte [eax + 2], cl
inc edx
add eax, 3
mov ecx, dword [esp + 0x50]
cmp edx, ecx
jl 0x5721f5
test byte [ebx + 0x30], 8
je 0x572402
mov eax, dword [esp]
cmp eax, 3
jne 0x572402
mov dx, word [ebx + 0xd8]
xor eax, eax
mov word [esp + 0x5e], dx
mov esi, 8
mov al, byte [ebx + 0x13c]
mov edx, 8
sub esi, eax
xor eax, eax
mov al, byte [ebx + 0x13d]
xor ecx, ecx
sub edx, eax
mov eax, 8
mov dword [esp + 0x60], edx
mov cl, byte [ebx + 0x13e]
sub eax, ecx
test esi, esi
mov dword [esp + 0x64], eax
jl 0x57238e
cmp esi, 8
jle 0x572390
xor esi, esi
mov eax, dword [esp + 0x60]
test eax, eax
jl 0x5723a1
mov edx, dword [esp + 0x60]
cmp edx, 8
jle 0x5723a7
xor ecx, ecx
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x64]
test eax, eax
jl 0x5723b8
mov edx, dword [esp + 0x64]
cmp edx, 8
jle 0x5723be
xor ecx, ecx
mov dword [esp + 0x64], ecx
xor eax, eax
cmp ax, word [esp + 0x5e]
jae 0x572402
movzx edx, ax
mov ecx, dword [ebx + 0xd4]
inc eax
lea edx, [edx + edx*2]
lea edi, [ecx + edx]
mov ecx, esi
shr byte [edi], cl
mov ecx, dword [ebx + 0xd4]
lea edi, [ecx + edx + 1]
mov ecx, dword [esp + 0x60]
shr byte [edi], cl
mov ecx, dword [ebx + 0xd4]
lea edx, [ecx + edx + 2]
mov ecx, dword [esp + 0x64]
shr byte [edx], cl
cmp ax, word [esp + 0x5e]
jb 0x5723c7
add esp, 0xa8
pop edi
pop esi
pop ebx
ret
mov edx, dword [0x43cac0]
call fcn.00403fb8
test al, al
je 0x8b8b99
mov eax, ebx
cmp dword [eax + 0xc], 0x477a
jne 0x8b8b8d
mov eax, dword [eax + 0x68]
mov edx, dword [esp]
call fcn.0042fa1c
jmp 0x8b8bb4
mov eax, dword [eax + 0x68]
mov edx, ebp
call fcn.0042fa1c
jmp 0x8b8bb4
mov eax, ebx
mov edx, dword [0x4aee80]
call fcn.00403fb8
test al, al
je 0x8b8bb4
mov eax, dword [ebx + 0x68]
mov edx, ebp
call fcn.0042fa1c
mov eax, ebx
mov edx, dword [0x454abc]
call fcn.00403fb8
test al, al
je 0x8b8bed
mov eax, ebx
call fcn.0045c224
mov esi, eax
dec esi
test esi, esi
jl 0x8b8bed
inc esi
xor edi, edi
mov edx, edi
mov eax, ebx
call fcn.0045c1e8
mov ecx, dword [esp]
mov edx, ebp
call fcn.008b8b58
inc edi
dec esi
jne 0x8b8bd6
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret