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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x40]
cmp eax, dword [ecx + 8]
jbe 0x5979d0
sub esp, 0xc0
mov eax, dword [esp + 0xc4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov ebx, dword [eax]
test ebx, ebx
jne 0x59776a
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x2c]
lea ecx, [ecx + edx*2]
add ecx, dword [eax + 0x38]
movzx edx, byte [eax + 0x4c]
movzx ebx, byte [eax + 0x40]
test dl, dl
je 0x597761
lea edx, [ebx + 1]
mov ebx, 5
mov ebp, dword [eax + 0x48]
test ebp, ebp
jle 0x596b17
lea ebx, [ebx + ebp + 5]
inc edx
mov ebp, dword [eax + 0x54]
test ebp, ebp
jle 0x596b23
lea ebx, [ebx + ebp*2 + 2]
inc edx
mov ebp, dword [eax + 0x60]
test ebp, ebp
jle 0x596b2f
lea ebx, [ebp + ebx + 1]
inc edx
movzx ebp, byte [eax + 0x68]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x596b3f
mov ebp, dword [eax + 0x70]
add ebx, ebp
inc edx
mov ebp, dword [eax + 0x7c]
test ebp, ebp
jle 0x596b4b
lea ebx, [ebx + ebp*2 + 2]
inc edx
movzx ebp, byte [eax + 0x90]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x596b63
mov ebp, dword [eax + 0x88]
lea ebx, [ebp + ebx + 1]
inc edx
mov ebp, dword [eax + 0x94]
mov esi, dword [eax + 0x98]
test esi, esi
jle 0x596ba8
mov dword [esp + 0x60], ecx
add ebx, 2
xor edi, edi
jmp 0x596b87
inc edi
lea ebx, [ecx + ebx + 1]
mov ecx, dword [esp + 0x60]
cmp edi, esi
jge 0x596ba7
lea ecx, [ebp + edi*8]
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x5979b6
cmp ecx, 0xff
jle 0x596b7e
jmp 0x5979b6
inc edx
movzx ebp, byte [eax + 0x4d]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x596bb3
inc edx
mov dword [esp + 0x30], edx
lea ebp, [ecx + 0x26]
test edx, edx
jle 0x59775a
lea ebx, [ebx + edx*4]
lea ecx, [ebx + ecx + 0x28]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x3c], ebx
lea eax, [0x7720a0]
mov dword [esp], eax
lea eax, [ecx + 4]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.00438c00
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test edx, edx
jbe 0x5979af
mov byte [ecx], 1
cmp edx, 1
jbe 0x5979a8
mov ebx, dword [esp + 0x34]
mov ebp, ebx
sar ebx, 0x10
mov byte [ecx + 1], bl
cmp edx, 2
jbe 0x5979a1
mov ebx, ebp
sar ebp, 8
xchg ebp, eax
mov byte [ecx + 2], al
xchg ebp, eax
cmp edx, 3
jbe 0x59799a
mov byte [ecx + 3], bl
mov edi, dword [esp + 0xc4]
movzx ebx, word [edi + 0xc]
cmp edx, 4
jbe 0x597993
shr bx, 8
mov byte [ecx + 4], bl
movzx ebx, word [edi + 0xc]
cmp edx, 5
jbe 0x59798c
mov byte [ecx + 5], bl
cmp eax, 0x26
jb 0x597985
mov ebx, dword [edi + 0x10]
mov ebp, dword [edi + 0x14]
cmp ebp, 0x20
jge 0x597750
mov dword [esp + 0x28], eax
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x24], edx
lea esi, [ecx + 6]
cmp ebx, esi
je 0x596c9e
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0044d420
mov edi, dword [esp + 0xc4]
mov ecx, dword [edi + 0x20]
mov edx, dword [esp + 0x24]
cmp edx, 0x26
jbe 0x59797e
mov eax, dword [esp + 0xa0]
mov byte [eax + 0x26], cl
mov ecx, dword [edi + 0x20]
lea ebx, [ecx + 0x27]
mov ebp, dword [edi + 0x1c]
test ebx, ebx
jl 0x597977
cmp ebx, 0x27
jb 0x597977
mov esi, dword [esp + 0x28]
cmp ebx, esi
ja 0x597977
lea ebx, [esi - 0x27]
neg ebx
sar ebx, 0x1f
and ebx, 0x27
add ebx, eax
cmp ebx, ebp
je 0x596d06
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
call fcn.0044d420
mov edi, dword [esp + 0xc4]
mov ecx, dword [edi + 0x20]
add ecx, 0x27
mov edx, dword [esp + 0x24]
cmp ecx, edx
ja 0x597970
mov ebx, dword [esp + 0x28]
sub ebx, ecx
mov esi, ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
mov eax, dword [esp + 0xa0]
lea ebp, [ebx + eax]
sub edx, ecx
mov ecx, dword [edi + 0x2c]
test edx, edx
jbe 0x597969
sar ecx, 7
mov byte [eax + ebx], cl
mov ecx, dword [edi + 0x2c]
cmp edx, 1
jbe 0x597962
mov dword [esp + 0x60], esi
shl ecx, 1
mov byte [eax + ebx + 1], cl
mov ecx, dword [edi + 0x28]
mov dword [esp + 0xbc], ecx
mov ebx, dword [edi + 0x2c]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x74]
jmp 0x596da5
mov byte [esi + ebp + 3], bl
mov ecx, dword [esp + 0x38]
inc ecx
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0xbc]
mov esi, dword [esp + 0x60]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0xbc]
mov esi, dword [esp + 0x38]
cmp esi, ebx
jge 0x596dd4
movzx ecx, word [ecx + esi*2]
shl esi, 1
lea ebx, [esi + 2]
cmp ebx, edx
jae 0x59795b
mov ebx, ecx
shr cx, 8
mov byte [esi + ebp + 2], cl
lea ecx, [esi + 3]
cmp ecx, edx
jb 0x596d82
jmp 0x597954
mov ecx, dword [edi + 0x2c]
shl ecx, 1
add ecx, 2
cmp ecx, edx
ja 0x59794d
mov ebx, dword [esp + 0x60]
sub ebx, ecx
mov dword [esp + 0x20], ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
lea esi, [ebx + ebp]
sub edx, ecx
mov ecx, dword [edi + 0x38]
test edx, edx
jbe 0x597946
mov dword [esp + 0x9c], esi
mov byte [ebp + ebx], cl
mov ecx, dword [esp + 0x20]
lea ebx, [ecx - 1]
neg ebx
sar ebx, 0x1f
and ebx, 1
add ebx, esi
lea ebp, [edx - 1]
mov esi, dword [edi + 0x34]
mov ecx, dword [edi + 0x38]
cmp ebp, ecx
jle 0x597749
mov dword [esp + 0x1c], edx
cmp esi, ebx
je 0x596e4a
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
call fcn.0044d420
mov edi, dword [esp + 0xc4]
mov ecx, dword [edi + 0x38]
inc ecx
mov edx, dword [esp + 0x1c]
cmp ecx, edx
ja 0x59793f
mov ebx, dword [esp + 0x20]
sub ebx, ecx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
mov esi, dword [esp + 0x9c]
mov eax, ebp
lea ebp, [ebx + esi]
sub edx, ecx
mov ecx, dword [esp + 0x30]
test ecx, ecx
jle 0x597740
test edx, edx
jbe 0x597938
mov ecx, dword [esp + 0x3c]
sar ecx, 8
mov byte [esi + ebx], cl
cmp edx, 1
jbe 0x597931
mov ecx, dword [esp + 0x3c]
mov byte [esi + ebx + 1], cl
lea ecx, [eax - 2]
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, ebp
add edx, 0xfffffffe
movzx ebp, byte [edi + 0x40]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x597739
test edx, edx
jbe 0x59792a
mov byte [ecx], 0x33
cmp edx, 1
jbe 0x597923
mov byte [ecx + 1], 0x74
cmp edx, 4
jb 0x59791c
add ebx, 0xfffffffc
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
add ecx, ebx
add edx, 0xfffffffc
mov ebx, dword [edi + 0x48]
test ebx, ebx
jg 0x5975ef
movzx ebx, byte [edi + 0x4c]
test bl, bl
je 0x596f6d
test edx, edx
jbe 0x5978d6
mov byte [ecx], 0
cmp edx, 1
jbe 0x5978cf
mov byte [ecx + 1], 5
cmp edx, 2
jbe 0x5978c8
mov byte [ecx + 2], 0
cmp edx, 3
jbe 0x5978c1
mov byte [ecx + 3], 5
cmp edx, 4
jbe 0x5978ba
mov byte [ecx + 4], 1
cmp edx, 9
jb 0x5978b3
lea ebx, [ebp - 9]
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 9
add ecx, ebx
add edx, 0xfffffff7
mov ebx, dword [edi + 0x54]
test ebx, ebx
jle 0x597051
test edx, edx
jbe 0x5978ac
mov byte [ecx], 0
cmp edx, 1
jbe 0x5978a5
mov byte [ecx + 1], 0xa
mov ebx, dword [edi + 0x54]
cmp edx, 2
jbe 0x59789e
shl ebx, 1
lea esi, [ebx + 2]
mov eax, esi
sar esi, 8
xchg esi, eax
mov byte [ecx + 2], al
xchg esi, eax
cmp edx, 3
jbe 0x597897
mov byte [ecx + 3], al
cmp edx, 4
jbe 0x597890
mov esi, ebx
sar ebx, 8
mov byte [ecx + 4], bl
cmp edx, 5
jbe 0x597889
xchg esi, eax
mov byte [ecx + 5], al
xchg esi, eax
lea ebx, [ebp - 6]
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 6
add ecx, ebx
add edx, 0xfffffffa
mov ebx, dword [edi + 0x54]
mov esi, dword [edi + 0x50]
mov dword [esp + 0xb8], esi
xor eax, eax
jmp 0x59702a
movzx esi, word [esp + 0x1a]
xchg esi, eax
mov byte [ecx + 1], al
xchg esi, eax
inc eax
add ebp, 0xfffffffe
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
add ecx, ebp
add edx, 0xfffffffe
mov ebp, dword [esp + 0xb8]
mov ebp, esi
mov esi, dword [esp + 0xb8]
cmp eax, ebx
jge 0x597051
movzx esi, word [esi + eax*2]
test edx, edx
jbe 0x597882
mov word [esp + 0x1a], si
shr si, 8
xchg esi, eax
mov byte [ecx], al
xchg esi, eax
cmp edx, 1
ja 0x596ff9
jmp 0x59787b
mov ebx, dword [edi + 0x60]
test ebx, ebx
jle 0x597100
test edx, edx
jbe 0x597874
mov byte [ecx], 0
cmp edx, 1
jbe 0x59786d
mov byte [ecx + 1], 0xb
mov ebx, dword [edi + 0x60]
cmp edx, 2
jbe 0x597866
lea esi, [ebx + 1]
mov eax, esi
sar esi, 8
xchg esi, eax
mov byte [ecx + 2], al
xchg esi, eax
cmp edx, 3
jbe 0x59785f
mov byte [ecx + 3], al
cmp edx, 4
jbe 0x597858
mov byte [ecx + 4], bl
lea ebx, [ebp - 5]
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 5
add ecx, ebx
add edx, 0xfffffffb
mov ebx, dword [edi + 0x60]
mov esi, dword [edi + 0x5c]
mov dword [esp + 0xb4], esi
xor eax, eax
jmp 0x5970ef
xchg esi, eax
mov byte [ecx], al
xchg esi, eax
inc eax
dec ebp
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
add ecx, ebp
dec edx
mov ebp, dword [esp + 0xb4]
mov ebp, esi
mov esi, dword [esp + 0xb4]
cmp eax, ebx
jge 0x597100
movzx esi, byte [esi + eax]
test edx, edx
ja 0x5970c8
jmp 0x597851
movzx ebx, byte [edi + 0x68]
test bl, bl
je 0x5975e8
test edx, edx
jbe 0x59784a
mov byte [ecx], 0
cmp edx, 1
jbe 0x597843
mov byte [ecx + 1], 0x23
mov ebx, dword [edi + 0x70]
cmp edx, 2
jbe 0x59783c
mov esi, ebx
sar ebx, 8
mov byte [ecx + 2], bl
cmp edx, 3
jbe 0x597835
xchg esi, eax
mov byte [ecx + 3], al
xchg esi, eax
lea ebx, [ebp - 4]
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, 4
add ecx, ebx
add edx, 0xfffffffc
mov ebx, dword [edi + 0x70]
mov esi, dword [edi + 0x6c]
cmp edx, ebx
jle 0x5975e1
mov dword [esp + 0x58], edx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x9c], ecx
cmp esi, ecx
je 0x597189
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.0044d420
mov edi, dword [esp + 0xc4]
mov ecx, dword [edi + 0x70]
mov edx, dword [esp + 0x58]
cmp ecx, edx
ja 0x59782e
mov ebx, dword [esp + 0x60]
sub ebx, ecx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
mov esi, dword [esp + 0x9c]
add ebx, esi
sub edx, ecx
mov ecx, dword [edi + 0x7c]
test ecx, ecx
jle 0x5975d6
test edx, edx
jbe 0x597827
mov byte [ebx], 0
cmp edx, 1
jbe 0x597820
mov byte [ebx + 1], 0xd
mov ecx, dword [edi + 0x7c]
cmp edx, 2
jbe 0x597819
shl ecx, 1
lea esi, [ecx + 2]
mov eax, esi
sar esi, 8
xchg esi, eax
mov byte [ebx + 2], al
xchg esi, eax
cmp edx, 3
jbe 0x597812
mov dword [esp + 0x54], edx
mov byte [ebx + 3], al
lea esi, [ebp - 4]
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
mov eax, ebp
lea ebp, [ebx + esi]
add edx, 0xfffffffc
test edx, edx
jbe 0x59780b
mov dword [esp + 0x60], ecx
sar ecx, 8
mov byte [ebx + esi], cl
cmp edx, 1
jbe 0x597804
mov ecx, dword [esp + 0x60]
mov byte [ebx + esi + 1], cl
lea ecx, [eax - 6]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, ebp
mov ebx, dword [esp + 0x54]
add ebx, 0xfffffffa
mov ebp, dword [edi + 0x7c]
mov esi, dword [edi + 0x78]
mov dword [esp + 0xb0], esi
xor eax, eax
jmp 0x597295
movzx esi, word [esp + 0x18]
xchg esi, eax
mov byte [ecx + 1], al
xchg esi, eax
inc eax
add edx, 0xfffffffe
mov esi, edx
neg edx
sar edx, 0x1f
and edx, 2
add ecx, edx
add ebx, 0xfffffffe
mov edx, dword [esp + 0xb0]
mov edx, esi
mov esi, dword [esp + 0xb0]
cmp eax, ebp
jge 0x5972bc
movzx esi, word [esi + eax*2]
test ebx, ebx
jbe 0x5977fd
mov word [esp + 0x18], si
shr si, 8
xchg esi, eax
mov byte [ecx], al
xchg esi, eax
cmp ebx, 1
ja 0x597268
jmp 0x5977f6
movzx ebp, byte [edi + 0x90]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5975cb
test ebx, ebx
jbe 0x5977ef
mov byte [ecx], 0xff
cmp ebx, 1
jbe 0x5977e8
mov byte [ecx + 1], 1
cmp ebx, 2
jbe 0x5977e1
mov byte [ecx + 2], 0
mov ebp, dword [edi + 0x88]
cmp ebx, 3
jbe 0x5977da
inc ebp
xchg ebp, eax
mov byte [ecx + 3], al
xchg ebp, eax
mov ebp, dword [edi + 0x88]
cmp ebx, 4
jbe 0x5977d3
xchg ebp, eax
mov byte [ecx + 4], al
xchg ebp, eax
add edx, 0xfffffffb
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, 5
add ecx, edx
lea edx, [ebx - 5]
mov ebx, dword [edi + 0x88]
mov esi, dword [edi + 0x84]
cmp edx, ebx
jle 0x5975c4
mov dword [esp + 0x50], edx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x9c], ecx
cmp esi, ecx
je 0x597364
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.0044d420
mov edi, dword [esp + 0xc4]
mov ecx, dword [edi + 0x88]
mov edx, dword [esp + 0x50]
cmp ecx, edx
ja 0x5977cc
mov ebx, dword [esp + 0x60]
sub ebx, ecx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
mov esi, dword [esp + 0x9c]
add ebx, esi
sub edx, ecx
mov ecx, dword [edi + 0x98]
test ecx, ecx
jle 0x5975be
test edx, edx
jbe 0x5977c5
mov byte [ebx], 0
cmp edx, 1
jbe 0x5977be
mov byte [ebx + 1], 0x10
cmp edx, 6
jb 0x5977b7
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], ebp
mov dword [esp + 0xac], ebx
lea ecx, [ebp - 6]
mov esi, ecx
neg ecx
sar ecx, 0x1f
and ecx, 6
add ecx, ebx
mov eax, ebx
lea ebx, [edx - 6]
mov ebp, dword [edi + 0x94]
mov dword [esp + 0xa8], ebp
mov edx, dword [edi + 0x98]
mov dword [esp + 0x60], edx
mov dword [esp + 0x6c], eax
xor eax, eax
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x6c]
jmp 0x59746d
mov eax, dword [esp + 0x5c]
inc eax
mov esi, dword [esp + 0x58]
sub esi, edx
mov ebp, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edx
mov edi, dword [esp + 0xa4]
add esi, edi
sub ebx, edx
mov edx, dword [esp + 0x2c]
lea ecx, [ecx + edx + 1]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0xa8]
mov edi, dword [esp + 0xc4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x2c], ecx
mov ecx, esi
mov eax, dword [esp + 0xac]
mov esi, ebp
mov ebp, dword [esp + 0xa8]
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x5c]
cmp esi, edx
jge 0x5974f4
lea ebp, [ebp + esi*8]
mov edx, dword [ebp + 4]
mov ebp, dword [ebp]
test ebx, ebx
jbe 0x5977b0
mov dword [esp + 0xa4], ecx
mov byte [ecx], dl
mov esi, dword [esp + 0x58]
dec esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add esi, ecx
lea ecx, [ebx - 1]
cmp ecx, edx
jle 0x5974e4
mov ecx, edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x48], ebx
cmp esi, ebp
je 0x5974cc
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
call fcn.0044d420
mov ecx, dword [esp + 0x54]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x48]
cmp edx, ebx
jbe 0x597416
jmp 0x5977a9
mov dword [esp + 0x64], eax
mov eax, ecx
mov ecx, edx
mov edx, eax
mov eax, dword [esp + 0x64]
jmp 0x5974b0
mov edx, dword [esp + 0x4c]
add edx, 0xfffffffe
cmp edx, 2
jbe 0x5977a2
mov ebp, dword [esp + 0x20]
add ebp, 0xfffffffe
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 2
mov esi, dword [esp + 0x2c]
sar esi, 8
xchg esi, ebx
mov byte [eax + ebp + 2], bl
xchg esi, ebx
cmp edx, 3
jbe 0x59779b
mov edx, dword [esp + 0x2c]
mov byte [eax + ebp + 3], dl
add edx, 2
mov esi, edx
sar edx, 8
mov byte [eax + ebp], dl
xchg esi, ebx
mov byte [eax + ebp + 1], bl
xchg esi, ebx
movzx edx, byte [edi + 0x4d]
test dl, dl
je 0x597573
test ebx, ebx
jbe 0x597794
mov byte [ecx], 0
cmp ebx, 1
jbe 0x59778d
mov byte [ecx + 1], 0x12
cmp ebx, 4
jb 0x597786
mov ecx, dword [esp + 0x24]
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x28]
mov dword [edi + 8], edx
mov ebx, dword [0xbc7270]
test ebx, ebx
jne 0x5975b0
mov eax, dword [esp + 0xa0]
mov dword [edi], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], edx
add esp, 0xc0
ret
mov eax, dword [esp + 0xa0]
call fcn.0044cc20
jmp 0x597594
mov ecx, ebx
mov ebx, edx
jmp 0x59754a
mov ebx, edx
jmp 0x597341
mov ebp, edx
mov edx, ebx
mov ebx, ecx
jmp 0x597397
mov ecx, ebx
mov ebx, edx
mov edx, ebp
jmp 0x5972bc
mov ebx, edx
jmp 0x597166
mov ebx, ecx
jmp 0x5971b9
test edx, edx
jbe 0x597915
mov byte [ecx], 0
cmp edx, 1
jbe 0x59790e
mov byte [ecx + 1], 0
mov eax, dword [edi + 0x48]
cmp edx, 2
jbe 0x597907
add eax, 5
mov ebx, eax
sar eax, 8
mov byte [ecx + 2], al
cmp edx, 3
jbe 0x597900
mov dword [esp + 0x60], ebx
mov dword [esp + 0x44], edx
mov byte [ecx + 3], bl
lea eax, [ebp - 4]
mov dword [esp + 0x20], eax
neg eax
sar eax, 0x1f
and eax, 4
lea esi, [ecx + eax]
lea ebx, [edx - 4]
mov edx, dword [edi + 0x48]
test ebx, ebx
jbe 0x5978f9
add edx, 3
sar edx, 8
mov byte [ecx + eax], dl
mov edx, dword [edi + 0x48]
cmp ebx, 1
jbe 0x5978f2
add edx, 3
mov byte [ecx + eax + 1], dl
mov edx, dword [edi + 0x48]
cmp ebx, 3
jbe 0x5978eb
sar edx, 8
mov byte [ecx + eax + 3], dl
mov edx, dword [edi + 0x48]
cmp ebx, 4
jbe 0x5978e4
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x9c], esi
mov dword [esp + 0x40], ebp
mov byte [ecx + eax + 4], dl
mov eax, dword [edi + 0x44]
mov ecx, dword [edi + 0x48]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
lea eax, [esp + 0x7c]
mov dword [esp], eax
call fcn.0043c1f0
mov eax, dword [esp + 0x40]
add eax, 0xfffffff7
neg eax
sar eax, 0x1f
and eax, 5
mov ecx, dword [esp + 0x9c]
add eax, ecx
mov edx, dword [esp + 0x44]
add edx, 0xfffffff7
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
cmp edx, ebp
jle 0x597735
cmp ebx, eax
je 0x5976f9
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.0044d420
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x1c]
cmp ecx, edx
ja 0x5978dd
sub edx, ecx
mov ebp, dword [esp + 0x20]
sub ebp, ecx
mov ebx, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ecx, ebp
mov esi, dword [esp + 0x9c]
add ecx, esi
mov edi, dword [esp + 0xc4]
mov ebp, ebx
jmp 0x596f0b
mov ebp, edx
jmp 0x5976e5
mov ebp, ebx
jmp 0x596f00
mov ebx, eax
mov ecx, ebp
jmp 0x596ebf
mov ecx, ebp
jmp 0x596e32
mov ebp, 0x20
jmp 0x596c78
mov ecx, ebp
jmp 0x596bc9
mov edx, ebx
xor ebx, ebx
jmp 0x596b0b
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ecx
add esp, 0xc0
ret
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426730
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
call fcn.00426630
ud2
lea eax, [0x771de0]
mov dword [esp], eax
lea eax, [0x8f6a88]
mov dword [esp + 4], eax
call fcn.00427510
ud2
call fcn.0044b4c0
jmp fcn.00596ab0