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

Disassembly:
push esi
push edi
push ebx
push ebp
lea esp, [esp - 0xb0]
mov esi, dword [esp + 0xe8]
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0xec]
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x80], esi
mov esi, dword [esp + 0xf0]
mov ebp, dword [esp + 0xdc]
mov dword [esp + 0x7c], esi
mov ebx, dword [esp + 0xc4]
mov ecx, dword [esp + 0xd4]
mov esi, dword [esp + 0xf4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0xd8]
mov eax, dword [eax]
mov dword [esp + 0x98], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x58], ebp
mov eax, dword [ebp]
mov ebx, dword [ebx]
mov ebp, dword [esi + 0x10]
mov dword [esp + 0x94], ebx
mov ebx, dword [ecx]
mov dword [esp + 0x50], esi
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x48], ebx
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x4c], eax
mov esi, dword [esi + 0x14]
movzx eax, word [ebp*2 + 0x1044ac40]
mov edi, dword [esp + 0xe4]
mov dword [esp + 0x70], eax
add eax, eax
add eax, dword [esp + 0xf0]
mov dword [esp + 0x5c], edx
add eax, 2
mov dword [esp + 0x74], esi
mov edx, dword [edx]
mov ebx, dword [ebx]
movzx esi, word [esi*2 + 0x1044ac40]
mov dword [esp + 0x78], ebp
mov dword [esp + 0x54], edi
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x68], eax
mov ebp, dword [esp + 0xd0]
cmp dword [edi], 2
je 0x101052ae
xor eax, eax
mov esi, 1
mov dword [esp + 0x38], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xa4]
mov ebp, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x40], edx
cmp dword [esp + 0x98], 6
jle 0x10104d53
cmp eax, 8
jle 0x10104d53
mov edi, dword [esp + 0x68]
lea eax, [esp + 0x4c]
lea ebx, [esp + 0xe0]
lea ecx, [esp + 0x90]
lea edx, [esp + 0x8c]
lea esi, [esp + 4]
push edi
mov edi, dword [esp + 0x80]
push edi
mov edi, dword [esp + 0x88]
push edi
mov edi, dword [esp + 0x94]
push edi
mov edi, dword [esp + 0x94]
push edi
push esi
mov esi, dword [esp + 0x84]
push esi
mov esi, dword [esp + 0x8c]
push esi
mov edi, dword [esp + 0x94]
push edi
mov esi, dword [esp + 0x9c]
push esi
push edx
push ecx
push ebx
push eax
lea eax, [esp + 0x80]
push eax
lea edx, [esp + 0xd4]
push edx
lea ecx, [esp + 0xd4]
push ecx
call fcn.1010da50
lea esp, [esp + 0x44]
test eax, eax
je 0x10105177
mov edx, eax
and eax, 0xf
mov ebp, dword [esp + 4]
mov ecx, ebp
add eax, 0xfffffffe
and ebp, 0xf
sar edx, 0x10
shr ecx, 0x10
mov dword [esp + 0x38], edx
cmp eax, 4
mov dword [esp + 0x3c], ecx
ja case.default.0x10104651
jmp dword [eax*4 + 0x1044ac60]
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov ebp, edx
cmp edx, eax
jle 0x1010467f
sub dword [esp + 0x38], eax
mov ebp, eax
mov esi, 5
test eax, eax
je 0x10104dc3
jmp 0x10104684
mov esi, 1
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0xe0]
cmp edx, dword [esp + 0xe0]
jbe 0x10104a8b
cmp dword [esp + 0x84], 0
je 0x10105001
mov edx, ecx
xor ebx, ebx
sub edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
add edx, ebp
cmovs edx, ebx
mov ebx, ebp
sub eax, dword [esp + 0x88]
sub ebx, edx
sub eax, ecx
mov dword [esp + 0x20], edx
test eax, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], eax
jle 0x10104eed
mov edx, ebx
mov ebx, edx
sub ebx, dword [esp + 0x24]
xor ecx, ecx
test ebx, ebx
cmovle eax, edx
cmovle ebx, ecx
mov dword [esp + 0x18], ebx
test eax, eax
jle 0x1010481c
cmp eax, 6
jle 0x1010479a
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
lea ebx, [edx + ecx]
sub ebx, dword [esp + 0x24]
mov dword [esp + 0x10], ebx
cmp edi, ebx
jbe 0x1010472a
mov edx, edi
sub edx, dword [esp + 0x10]
cmp eax, edx
jle 0x10104738
cmp edi, dword [esp + 0x10]
jae 0x1010479a
mov edx, ebx
sub edx, edi
cmp eax, edx
jg 0x1010479a
mov ebx, eax
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
test ebx, ebx
jbe 0x10104ebb
mov dword [esp + 0x9c], ebp
xor edx, edx
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x10]
movzx eax, byte [ebp + edx*2]
mov byte [edi + edx*2], al
movzx ecx, byte [ebp + edx*2 + 1]
mov byte [edi + edx*2 + 1], cl
lea edx, [edx + 1]
cmp edx, ebx
jb 0x1010475a
add edx, edx
mov eax, dword [esp + 0xc]
inc edx
mov ebp, dword [esp + 0x9c]
cmp edx, eax
ja 0x1010481c
mov ecx, dword [esp + 0x10]
movzx eax, byte [ecx + edx - 1]
mov byte [edx + edi - 1], al
jmp 0x1010481c
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
mov dword [esp + 0x14], edx
test edx, edx
jbe 0x10104ec5
mov ebx, dword [esp + 0x80]
xor ecx, ecx
mov edx, dword [esp + 0x84]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xc], eax
mov ebp, dword [esp + 0x14]
lea ebx, [edx + ebx]
sub ebx, dword [esp + 0x24]
movzx eax, byte [ebx + ecx*2]
mov byte [edi + ecx*2], al
movzx edx, byte [ebx + ecx*2 + 1]
mov byte [edi + ecx*2 + 1], dl
lea ecx, [ecx + 1]
cmp ecx, ebp
jb 0x101047d5
add ecx, ecx
mov eax, dword [esp + 0xc]
inc ecx
mov ebp, dword [esp + 0x9c]
cmp ecx, eax
ja 0x1010481c
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
lea eax, [edx + ebx]
sub eax, dword [esp + 0x24]
movzx eax, byte [ecx + eax - 1]
mov byte [ecx + edi - 1], al
cmp dword [esp + 0x18], 0
je 0x10104956
jle 0x10104956
cmp dword [esp + 0x18], 6
jle 0x101048de
mov eax, dword [esp + 0x24]
lea edx, [eax + edi]
mov dword [esp], edx
cmp edx, dword [esp + 0x84]
jbe 0x1010485a
mov eax, edx
sub eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x18]
jge 0x10104875
mov eax, edx
cmp eax, dword [esp + 0x84]
jae 0x101048de
mov eax, dword [esp + 0x84]
sub eax, dword [esp]
cmp eax, dword [esp + 0x18]
jl 0x101048de
mov edx, dword [esp + 0x18]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jbe 0x10104ecf
mov dword [esp + 0x9c], ebp
xor ebx, ebx
mov ebp, dword [esp]
mov edi, dword [esp + 0x84]
movzx edx, byte [edi + ebx*2]
mov byte [ebp + ebx*2], dl
movzx ecx, byte [edi + ebx*2 + 1]
mov byte [ebp + ebx*2 + 1], cl
lea ebx, [ebx + 1]
cmp ebx, eax
jb 0x1010489d
add ebx, ebx
mov ebp, dword [esp + 0x9c]
inc ebx
cmp ebx, dword [esp + 0x18]
ja 0x10104956
mov edx, dword [esp + 0x84]
mov ecx, dword [esp]
movzx eax, byte [ebx + edx - 1]
mov byte [ecx + ebx - 1], al
jmp 0x10104956
mov eax, dword [esp + 0x18]
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
test ecx, ecx
jbe 0x1010505b
mov eax, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], edi
mov ebp, dword [esp + 0x84]
lea eax, [eax + edi]
movzx ebx, byte [ebp + edx*2]
mov byte [eax + edx*2], bl
movzx ebx, byte [ebp + edx*2 + 1]
mov byte [eax + edx*2 + 1], bl
lea edx, [edx + 1]
cmp edx, ecx
jb 0x10104911
add edx, edx
mov edi, dword [esp + 0xa0]
inc edx
mov ebp, dword [esp + 0x9c]
cmp edx, dword [esp + 0x18]
ja 0x10104956
mov ecx, dword [esp + 0x24]
add ecx, edi
mov edi, dword [esp + 0x84]
movzx eax, byte [edx + edi - 1]
mov byte [edx + ecx - 1], al
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0xe0]
cmp dword [esp + 0x20], 0
jne 0x10104971
mov eax, dword [esp + 0x4c]
jmp 0x10104b5b
mov eax, edi
add dword [esp + 0x1c], edi
sub eax, ecx
mov dword [esp + 8], eax
cmp dword [esp + 0x20], 0
jle 0x10104968
cmp dword [esp + 0x20], 6
jle 0x10104a23
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 8]
jbe 0x101049a3
sub eax, dword [esp + 8]
cmp eax, dword [esp + 0x20]
jge 0x101049bb
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 8]
jae 0x10104a23
mov eax, dword [esp + 8]
sub eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x20]
jl 0x10104a23
mov edx, dword [esp + 0x20]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jbe 0x10104ed9
mov dword [esp + 0x9c], ebp
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 8]
movzx edx, byte [edi + ebx*2]
mov byte [ebp + ebx*2], dl
movzx ecx, byte [edi + ebx*2 + 1]
mov byte [ebp + ebx*2 + 1], cl
lea ebx, [ebx + 1]
cmp ebx, eax
jb 0x101049e1
add ebx, ebx
mov ebp, dword [esp + 0x9c]
inc ebx
cmp ebx, dword [esp + 0x20]
ja 0x10104b4c
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x1c]
movzx eax, byte [edx + ebx - 1]
mov byte [ebx + ecx - 1], al
jmp 0x10104b4c
mov edx, dword [esp + 0x20]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jbe 0x10104ee3
mov dword [esp + 0x9c], ebp
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 8]
movzx edx, byte [edi + ebx*2]
mov byte [ebp + ebx*2], dl
movzx ecx, byte [edi + ebx*2 + 1]
mov byte [ebp + ebx*2 + 1], cl
lea ebx, [ebx + 1]
cmp ebx, eax
jb 0x10104a49
add ebx, ebx
mov ebp, dword [esp + 0x9c]
inc ebx
cmp ebx, dword [esp + 0x20]
ja 0x10104b4c
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x1c]
movzx eax, byte [ebx + edx - 1]
mov byte [ebx + ecx - 1], al
jmp 0x10104b4c
mov edx, edi
sub edx, dword [esp + 0x3c]
test ebp, ebp
jle 0x10104b5b
cmp ebp, 6
jle 0x10104b02
cmp edi, edx
jbe 0x10104aaa
mov eax, edi
sub eax, edx
cmp ebp, eax
jle 0x10104ab6
cmp edx, edi
jbe 0x10104b02
mov eax, edx
sub eax, edi
cmp ebp, eax
jg 0x10104b02
mov eax, ebp
shr eax, 0x1f
add eax, ebp
sar eax, 1
test eax, eax
jbe 0x10105047
mov dword [esp + 0x9c], ebp
xor ecx, ecx
mov ebp, eax
movzx eax, byte [edx + ecx*2]
mov byte [edi + ecx*2], al
movzx ebx, byte [edx + ecx*2 + 1]
mov byte [edi + ecx*2 + 1], bl
lea ecx, [ecx + 1]
cmp ecx, ebp
jb 0x10104ad2
add ecx, ecx
mov ebp, dword [esp + 0x9c]
inc ecx
cmp ecx, ebp
ja 0x10104b4c
movzx eax, byte [edx + ecx - 1]
mov byte [ecx + edi - 1], al
jmp 0x10104b4c
mov eax, ebp
shr eax, 0x1f
add eax, ebp
sar eax, 1
test eax, eax
jbe 0x10105051
mov dword [esp + 0x9c], ebp
xor ecx, ecx
mov ebp, eax
movzx eax, byte [edx + ecx*2]
mov byte [edi + ecx*2], al
movzx ebx, byte [edx + ecx*2 + 1]
mov byte [edi + ecx*2 + 1], bl
lea ecx, [ecx + 1]
cmp ecx, ebp
jb 0x10104b1e
add ecx, ecx
mov ebp, dword [esp + 0x9c]
inc ecx
cmp ecx, ebp
ja 0x10104b4c
movzx eax, byte [ecx + edx - 1]
mov byte [ecx + edi - 1], al
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xe0]
add ecx, ebp
add edi, ebp
sub eax, ebp
mov dword [esp + 0xe0], ecx
cmp esi, 5
je 0x10104dc3
mov dword [esp + 0x4c], eax
cmp esi, 1
mov dword [esp + 0x48], edi
je 0x10104577
test eax, eax
je 0x10104dc3
mov eax, dword [esp + 0x38]
mov esi, 1
mov byte [edi], al
mov eax, dword [esp + 0x4c]
dec eax
inc dword [esp + 0x48]
inc dword [esp + 0xe0]
mov dword [esp + 0x4c], eax
jmp 0x10104577
mov eax, dword [esp + 0x4c]
mov esi, 4
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
cmp ebx, ebp
jg 0x10105072
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x28], ecx
mov ecx, ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0xa0], edi
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
jmp 0x10104c0c
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], edx
test esi, esi
jle 0x10105065
movzx ebx, byte [edi]
inc edi
shl ebx, cl
add ecx, 8
or edx, ebx
dec esi
mov dword [esp + 0x94], edi
cmp ecx, ebp
mov dword [esp + 0x98], esi
jle 0x10104bfe
jmp 0x10105065
mov eax, dword [esp + 0x4c]
mov esi, 3
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
cmp ebx, dword [esp + 0x74]
jg 0x101050dd
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x44], esi
mov esi, ecx
mov ebp, dword [esp + 0x94]
mov ecx, ebx
mov dword [esp + 0xa0], edi
mov ebx, esi
mov esi, ebp
mov ebp, dword [esp + 0x74]
jmp 0x10104c91
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], edx
test ebx, ebx
jle 0x101050d0
movzx edi, byte [esi]
inc esi
shl edi, cl
add ecx, 8
or edx, edi
dec ebx
mov dword [esp + 0x94], esi
cmp ecx, ebp
mov dword [esp + 0x98], ebx
jle 0x10104c83
jmp 0x101050d0
mov eax, dword [esp + 0x4c]
mov esi, 2
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
cmp ebx, ebp
jg 0x10105143
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x30], ecx
mov ecx, ebx
mov dword [esp + 0x44], esi
mov dword [esp + 0xa0], edi
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
jmp 0x10104d1a
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], edx
test esi, esi
jle 0x10105136
movzx ebx, byte [edi]
inc edi
shl ebx, cl
add ecx, 8
or edx, ebx
dec esi
mov dword [esp + 0x94], edi
cmp ecx, ebp
mov dword [esp + 0x98], esi
jle 0x10104d0c
jmp 0x10105136
mov eax, dword [esp + 0x4c]
mov esi, 1
jmp 0x10104577
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
cmp ebp, dword [esp + 0x90]
jl 0x101051cc
mov dword [esp + 0x44], esi
mov ecx, ebx
mov ebp, dword [esp + 0x94]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x78]
jmp 0x10104d97
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], edx
test esi, esi
jle 0x101051c2
movzx ebx, byte [ebp]
inc ebp
shl ebx, cl
add ecx, 8
or edx, ebx
dec esi
mov dword [esp + 0x94], ebp
cmp ecx, edi
mov dword [esp + 0x98], esi
jle 0x10104d89
jmp 0x101051c2
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], edi
mov ecx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], esi
add esi, 0xfffffffe
cmp esi, 4
mov esi, dword [esp + 0x44]
ja 0x10104e40
mov edi, dword [esp + 0x50]
mov eax, dword [esp + 0x38]
mov dword [esp], 0
mov dword [edi], esi
mov esi, dword [esp + 0x3c]
mov dword [edi + 8], esi
mov esi, dword [esp + 0x54]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [edi + 0xc], eax
mov dword [esi], 2
jmp 0x10104e76
test esi, esi
jne 0x10104e57
mov eax, dword [esp + 0x54]
mov dword [esp], 0
mov dword [eax], 0
jmp 0x10104e76
cmp esi, 1
jne 0x10104e6f
mov eax, dword [esp + 0x54]
mov dword [esp], 0
mov dword [eax], 1
jmp 0x10104e76
mov dword [esp], 0xffffff38
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x94]
mov edi, dword [esp + 0x40]
mov dword [esi], eax
mov eax, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
mov dword [eax], edi
mov dword [esi], edx
mov dword [ebp], ebx
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0xa0]
mov dword [ecx], edx
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp]
mov dword [ebx], ecx
lea esp, [esp + 0xb0]
pop ebp
pop ebx
pop edi
pop esi
ret
mov edx, 1
jmp 0x10104780
mov ecx, 1
jmp 0x101047fa
mov ebx, 1
jmp 0x101048bf
mov ebx, 1
jmp 0x10104a03
mov ebx, 1
jmp 0x10104a6b
cmp dword [esp + 0x1c], 0
jle 0x10104961
cmp dword [esp + 0x1c], 6
jle 0x10104f83
mov ebx, dword [esp + 0x84]
sub ebx, dword [esp + 0x24]
cmp edi, ebx
jbe 0x10104f1c
mov eax, edi
sub eax, ebx
cmp eax, dword [esp + 0x1c]
jge 0x10104f2a
cmp ebx, edi
jbe 0x10104f83
mov eax, ebx
sub eax, edi
cmp eax, dword [esp + 0x1c]
jl 0x10104f83
mov edx, dword [esp + 0x1c]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jbe 0x10104ff7
mov dword [esp + 0x9c], ebp
xor edx, edx
mov ebp, eax
movzx eax, byte [ebx + edx*2]
mov byte [edi + edx*2], al
movzx ecx, byte [ebx + edx*2 + 1]
mov byte [edi + edx*2 + 1], cl
lea edx, [edx + 1]
cmp edx, ebp
jb 0x10104f4a
add edx, edx
mov ebp, dword [esp + 0x9c]
inc edx
cmp edx, dword [esp + 0x1c]
ja 0x10104956
movzx eax, byte [ebx + edx - 1]
mov byte [edx + edi - 1], al
jmp 0x10104956
mov edx, dword [esp + 0x1c]
mov eax, edx
shr eax, 0x1f
add eax, edx
sar eax, 1
test eax, eax
jbe 0x10104ff0
mov ebx, dword [esp + 0x84]
xor ecx, ecx
sub ebx, dword [esp + 0x24]
mov dword [esp + 0x9c], ebp
mov ebp, eax
movzx edx, byte [ebx + ecx*2]
mov byte [edi + ecx*2], dl
movzx eax, byte [ebx + ecx*2 + 1]
mov byte [edi + ecx*2 + 1], al
lea ecx, [ecx + 1]
cmp ecx, ebp
jb 0x10104faa
add ecx, ecx
mov ebp, dword [esp + 0x9c]
inc ecx
cmp ecx, dword [esp + 0x1c]
ja 0x10104956
mov edx, dword [esp + 0x24]
neg edx
add edx, dword [esp + 0x84]
movzx eax, byte [ecx + edx - 1]
mov byte [ecx + edi - 1], al
jmp 0x10104956
mov ecx, 1
jmp 0x10104fcb
mov edx, 1
jmp 0x10104f6b
mov dword [esp + 0xa4], eax
mov esi, 7
mov eax, dword [esp + 0x98]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], edi
mov ecx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x40], eax
jmp 0x10104dff
mov ecx, 1
jmp 0x10104af3
mov ecx, 1
jmp 0x10104b3f
mov edx, 1
jmp 0x1010493a
mov esi, dword [esp + 0x44]
mov ebx, ecx
mov edi, dword [esp + 0xa0]
cmp ebp, ebx
jg 0x1010509d
movzx esi, word [ebp*2 + 0x1044ac40]
mov ecx, ebp
and esi, edx
sub ebx, ebp
shr edx, cl
add dword [esp + 0x3c], esi
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], ebx
jmp 0x10104660
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], edi
mov ecx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov dword [esp + 0x40], eax
jmp 0x10104dff
mov esi, dword [esp + 0x44]
mov ebx, ecx
mov edi, dword [esp + 0xa0]
mov ebp, edx
and ebp, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xa4], eax
movzx eax, word [ecx + ebp*2 + 0x400]
movzx ebp, byte [ebp + ecx]
mov ecx, ebp
and ecx, 0xf
mov dword [esp + 0x3c], eax
cmp ebx, ecx
mov eax, dword [esp + 0xa4]
jl 0x1010509d
shr ebp, 4
sub ebx, ecx
shr edx, cl
mov dword [esp + 0x8c], edx
test ebp, ebp
mov dword [esp + 0x90], ebx
je 0x10104660
mov esi, 4
jmp 0x10104bc9
mov esi, dword [esp + 0x44]
mov ebx, ecx
mov edi, dword [esp + 0xa0]
cmp ebp, ebx
jg 0x1010509d
movzx esi, word [ebp*2 + 0x1044ac40]
mov ecx, ebp
and esi, edx
sub ebx, ebp
shr edx, cl
add dword [esp + 0x38], esi
mov esi, 3
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], ebx
jmp 0x10104c52
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x98]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], edx
mov ecx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x40], eax
mov dword [esp + 0xa4], esi
xor esi, esi
jmp 0x10104dff
mov dword [esp + 0x40], esi
mov ebx, ecx
mov esi, dword [esp + 0x44]
mov edi, edx
and edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x7c]
movzx ecx, byte [ebp + edi*2 + 1]
movzx ebp, byte [ebp + edi*2]
mov dword [esp + 0x38], ecx
mov ecx, ebp
and ecx, 0xf
cmp ebx, ecx
jl 0x10105282
shr edx, cl
sub ebx, ecx
and ebp, 0xf0
jne 0x10105219
mov dword [esp + 0x90], ebx
mov esi, 6
mov dword [esp + 0x8c], edx
mov edi, dword [esp + 0x48]
jmp 0x10104b82
cmp ebp, 0xf0
jne 0x1010524f
mov dword [esp + 0xa4], eax
xor esi, esi
mov eax, dword [esp + 0x48]
mov dword [esp + 0x9c], ebp
mov ecx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov dword [esp + 0xa0], eax
jmp 0x10104dff
shr ebp, 4
add dword [esp + 0x38], 3
mov edi, dword [esp + 0x48]
and ebp, 7
mov dword [esp + 0x90], ebx
mov dword [esp + 0x8c], edx
je 0x10105278
mov esi, 2
jmp 0x10104cd7
mov esi, 3
jmp 0x10104c52
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x9c], ebp
mov ecx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov dword [esp + 0xa0], eax
jmp 0x10104dff
mov edi, dword [esp + 0x50]
mov eax, dword [edi + 4]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [edi + 0xc]
mov esi, dword [edi]
mov dword [esp + 0x9c], eax
cmp dword [edi], 1
je 0x1010455b
cmp esi, 6
je 0x101052f2
cmp esi, 2
je 0x10105384
cmp esi, 3
je 0x10105363
cmp esi, 4
je 0x1010533b
cmp esi, 5
je 0x1010531a
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
jmp 0x10104b82
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ebp
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
jmp 0x10104660
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
jmp 0x10104bc9
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], ebp
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
jmp 0x10104c52
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xa4]
mov edi, dword [esp + 0xa0]
mov ebp, dword [esp + 0x9c]
jmp 0x10104cd7
mov eax, 0xffffff38
lea esp, [esp + 0xb0]
pop ebp
pop ebx
pop edi
pop esi
ret