Function at 0x100237a5
Capabilities:
Create thread
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x138
push ebx
push edi
mov dword [ebp - 0x50], edx
mov edi, ecx
mov dword [ebp - 0x3c], edi
xor eax, eax
mov dword [ebp - 8], 0xfe0a8eac
inc eax
mov dword [ebp - 0x24], 0x4c90d297
mov dword [ebp - 0x14], 0xfffffff8
or ecx, 0xffffffff
mov dword [ebp - 4], ecx
xor ebx, ebx
mov dword [ebp - 8], eax
mov dword [ebp - 0x14], 0x790e8648
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], 0x2038e85a
push 9
pop eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x18], 0x9fe5
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x30], 0x74e80031
mov dword [ebp - 0xc], 0xfffffff6
mov dword [ebp - 4], 0x68451f1e
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], 0x3132d683
mov dword [ebp - 0x30], eax
mov dword [ebp - 8], ebx
jmp 0x1002383a
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x114], 0x3588c556
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jl 0x10023829
mov dword [ebp - 8], ebx
jmp 0x10023856
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10023853
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
inc dword [ebp - 8]
cmp dword [ebp - 8], 0xd
jle 0x10023845
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], 0x3ca4d9a5
cmp dword [ebp - 0x1c], ebx
jne 0x1002386e
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0xc]
neg ecx
sbb ecx, ecx
neg ecx
sub ecx, eax
mov dword [ebp - 0x110], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x24]
inc dword [ebp - 4]
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x14], ebx
je 0x100238a9
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x100238ea
push ebx
push ebx
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringByteLen]
jmp 0x100238ea
mov dword [ebp - 0xc], 2
jmp 0x100238e4
mov dword [ebp - 4], 0x11
jmp 0x100238db
mov dword [ebp - 8], ebx
jmp 0x100238d2
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x100238cf
push ebx
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameW]
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x13
jg 0x100238c0
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x14
jle 0x100238bb
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xffffffef
jl 0x100238b2
cmp dword [edi + 0x10], ebx
jne 0x100238f6
xor al, al
jmp 0x10024548
push esi
xor esi, esi
mov dword [ebp - 8], 0xfffffffb
mov dword [ebp - 8], ebx
inc esi
cmp dword [ebp - 8], 3
jge 0x10023919
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x128], esi
inc dword [ebp - 8]
jmp 0x10023904
mov dword [ebp - 8], ebx
jmp 0x10023928
push ebx
call fcn.10026388
inc dword [ebp - 8]
pop ecx
cmp dword [ebp - 8], 2
jle 0x1002391e
mov dword [ebp - 4], ebx
mov dword [ebp - 0x20], 0xd8143836
mov dword [ebp - 0xc], 0x9b4af7bd
mov dword [ebp - 0x14], 0x5199242
mov dword [ebp - 8], ebx
jmp 0x1002395c
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x138], 0xffffffff
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jl 0x1002394b
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], 0x19
je 0x10023ade
mov edi, 0xffff
mov dword [ebp - 0x1c], 2
mov dword [ebp - 0x24], 0x54dbbe5
mov dword [ebp - 8], edi
cmp dword [ebp - 0x24], ebx
jne 0x100239ab
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, 0xb541
setg cl
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
cmp dword [ebp - 8], 4
mov eax, ebx
ja 0x100239ad
mov eax, esi
mov dword [ebp - 0x1c], 0x81d2
mov ecx, dword [ebp - 4]
add ecx, eax
imul ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
dec ecx
neg ecx
sbb ecx, ecx
xor edx, edx
neg ecx
cmp eax, 0xd94b
setne dl
sub edx, ecx
neg edx
sbb edx, edx
inc edx
sub edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setl cl
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
add eax, dword [ebp - 8]
je 0x10023a09
cmp dword [ebp - 0x1c], ebx
jne 0x10023adb
jmp 0x10023abf
mov dword [ebp - 0x1c], 0x9f3c5a4a
mov dword [ebp - 0x30], esi
mov dword [ebp - 0xc], ebx
jmp 0x10023a29
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xa8], 0x6709e149
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x10023a18
cmp dword [ebp - 0xa4], ebx
jne 0x10023a3d
mov eax, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0xa4]
xor edx, edx
mov eax, dword [ebp - 4]
cmp eax, ecx
mov eax, dword [ebp - 0xa4]
setg dl
xor ecx, ecx
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, 0xffffffff
setne al
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0xa8]
neg eax
sbb eax, eax
neg eax
sub ecx, eax
mov eax, dword [ebp - 0x24]
neg ecx
sbb ecx, ecx
inc ecx
cmp ecx, 0xf559cde8
sbb edx, edx
xor ecx, ecx
inc edx
cmp edx, eax
setne cl
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], ebx
je 0x10023ab2
mov ecx, esi
cmp dword [ebp - 0x20], ebx
jne 0x10023ab4
mov ecx, ebx
xor eax, eax
cmp ecx, 4
setg al
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10023ace
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x19
jne 0x10023974
mov edi, dword [ebp - 0x3c]
mov dword [ebp - 0xc], ebx
cmp dword [ebp - 0xc], 0xfffffff9
je 0x10023b47
xor ecx, ecx
inc ecx
mov dword [ebp - 0x14], 0xa8e4
mov dword [ebp - 0x14], 0x7b1d0057
mov dword [ebp - 0x20], ecx
mov dword [ebp - 8], ebx
jmp 0x10023b0d
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x11c], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10023b00
mov dword [ebp - 4], 3
cmp dword [ebp - 4], ebx
jl 0x10023b3b
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10023b33
push ebx
push 0x25d9
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
dec dword [ebp - 4]
jns 0x10023b1f
xor ecx, ecx
inc ecx
dec dword [ebp - 0x20]
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffff9
jne 0x10023aea
lea eax, [ebp - 0x50]
mov edx, 0x22c4
push 0x3a33
push eax
xor cl, cl
call fcn.100230f5
pop ecx
mov dword [ebp - 4], 0xfebaeef2
pop ecx
mov dword [ebp - 4], ebx
jmp 0x10023b78
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x70], 0x5711
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x10023b6a
push 3
mov dword [ebp - 4], ebx
pop ecx
jmp 0x10023b97
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x108], 0x85ba5616
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x10023b86
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], ebx
jl 0x10023c89
xor edi, edi
mov dword [ebp - 8], ebx
jmp 0x10023bbc
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0xb0], ebx
inc dword [ebp - 8]
cmp dword [ebp - 8], 2
jl 0x10023baf
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0x70], ebx
je 0x10023c41
mov dword [ebp - 0xb0], 0xfffffffd
xor edx, edx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 4]
add ecx, dword [ebp + eax*4 - 0x70]
mov eax, dword [ebp - 4]
cmp ecx, eax
mov eax, dword [ebp - 0x64]
setne dl
sub edx, 5
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp edx, eax
mov eax, dword [ebp - 4]
setle cl
cmp ecx, dword [ebp + eax*4 - 0x70]
jge 0x10023c14
lea edx, [edi + 1]
cmp dword [ebp - 0xac], ebx
jne 0x10023c16
mov edx, ebx
mov eax, dword [ebp - 4]
xor ecx, ecx
cmp edx, 0xb689
setl cl
mov eax, dword [ebp + eax*4 - 0x70]
sub ecx, eax
je 0x10023c2f
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
lea esi, [edi + 1]
mov eax, dword [ebp + eax*4 - 0x70]
imul eax, dword [ebp - 0x68]
test eax, eax
jne 0x10023c43
mov esi, ebx
mov eax, dword [ebp - 4]
cmp dword [ebp + eax*4 - 0x70], 0x9e923e64
sbb edx, edx
xor ecx, ecx
neg edx
cmp esi, 0x887
setne cl
xor eax, eax
cmp edx, ecx
setle al
mov dword [ebp - 0x100], eax
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10023c7a
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_SetCommState]
dec dword [ebp - 4]
jns 0x10023baa
mov edi, dword [ebp - 0x3c]
push 3
pop ecx
push 2
mov dword [ebp - 0x1c], 0xf3d37a5b
mov dword [ebp - 4], ebx
pop esi
jmp 0x10023ca6
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x44], 0xe0648261
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10023c98
mov dword [ebp - 4], ebx
jmp 0x10023cc1
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xd0], 0x6df37d45
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x10023cb0
mov dword [ebp - 0x44], ebx
cmp dword [ebp - 0x44], 0xffffffe3
jge 0x10023d0d
xor edx, edx
inc edx
mov dword [ebp - 8], edx
mov dword [ebp - 8], ecx
cmp dword [ebp - 8], ebx
jl 0x10023cfe
mov dword [ebp - 0xc], 0x7e4fc22
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], ebx
jl 0x10023cf9
mov dword [ebp - 0x1c], 0xffffffff
dec dword [ebp - 0xc]
jns 0x10023ced
dec dword [ebp - 8]
jns 0x10023cde
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x44]
cmp dword [ebp - 0x44], 0xffffffe3
jl 0x10023cd3
mov ecx, dword [ebp - 0xcc]
xor edx, edx
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x1c]
setg dl
add ecx, edx
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0xc4]
sete dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0x1c]
setge bl
xor edx, edx
cmp ecx, eax
setg dl
xor ecx, ecx
cmp edx, 0x55145ccb
setle cl
xor eax, eax
cmp ecx, ebx
setne al
xor ebx, ebx
mov dword [ebp - 0x44], eax
mov dword [ebp - 4], 0x90ac204e
mov dword [ebp - 0xc], 0xfffffff9
mov dword [ebp - 8], 0xbca0becc
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
jmp 0x10023ebf
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ebx
jmp 0x10023d98
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x4c], ebx
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x10023d8e
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10023db2
push 0x3abf
push ebx
call fcn.10026687
pop ecx
pop ecx
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x4c]
dec eax
neg eax
sbb eax, eax
inc eax
cmp eax, dword [ebp - 0xc]
jl 0x10023dc9
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x48]
xor edx, edx
cmp eax, 4
mov eax, dword [ebp - 0x4c]
setge dl
xor ecx, ecx
sub edx, eax
mov eax, dword [ebp - 0x4c]
cmp edx, eax
mov dword [ebp - 0xc], ebx
setle cl
cmp ecx, 0xbe4438b
je 0x10023e04
xor edx, edx
inc edx
jmp 0x10023e4c
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0xfc], 0x2206
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], esi
jl 0x10023df3
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], bl
je 0x10023e25
push ebx
push 0xcb4
push ebx
push ebx
push 0x1964
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebp - 0xc], ebx
jmp 0x10023e36
mov eax, dword [ebp - 4]
mov dword [ebp - 0xfc], eax
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffff0
jne 0x10023e2a
jmp 0x10023ebc
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x60], 0x6de6b933
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edx
jl 0x10023e3e
cmp dword [ebp - 0x60], ebx
jne 0x10023e89
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0x48]
imul eax, dword [ebp - 0x60]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 0xc]
imul eax, eax, 0xab72
test eax, eax
je 0x10023e7e
mov ecx, edx
cmp dword [ebp - 0x4c], ebx
jne 0x10023e80
mov ecx, ebx
mov eax, dword [ebp - 8]
sub eax, ecx
mov ecx, ebx
je 0x10023e8b
mov ecx, edx
mov eax, dword [ebp - 0x20]
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x20]
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
mov dword [ebp - 0x14], ecx
xor ecx, ecx
mov dword [ebp - 8], ebx
inc ecx
jmp 0x10023eb7
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x4c]
mov dword [ebp - 0x14], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jle 0x10023eaa
dec dword [ebp - 4]
cmp dword [ebp - 4], 0xffffffef
jne 0x10023d83
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 4], 0xffffffff
jb 0x10023eda
mov ecx, dword [edi]
jmp 0x10023edc
mov ecx, edi
cmp dword [edi + 0x14], 0x10
mov dword [ebp - 0x38], ecx
jb 0x10023ee9
mov edx, dword [edi]
jmp 0x10023eeb
mov edx, edi
mov eax, dword [edi + 0x10]
add eax, edx
cmp ecx, eax
je 0x10024544
mov dword [ebp - 4], 0x14a02569
xor ecx, ecx
mov dword [ebp - 0x18], 0xfffffffc
inc ecx
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 8], 0x211521fa
mov dword [ebp - 0xc], 5
mov dword [ebp - 4], ebx
jmp 0x10023f31
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x34], 0xfffc
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x10023f23
mov dword [ebp - 4], ebx
jmp 0x10023f45
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x5c], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10023f3b
mov dword [ebp - 4], ebx
jmp 0x10023f5d
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x2c], 0x93e75cb5
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x10023f4f
mov dword [ebp - 4], ebx
jmp 0x10023f75
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x34], 0xa136
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x10023f67
mov ecx, dword [ebp - 0x5c]
xor edx, edx
mov eax, dword [ebp - 0x5c]
cmp ecx, eax
setge dl
mov dword [ebp - 0x2c], edx
xor edx, edx
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x24]
cmp ecx, eax
mov eax, dword [ebp - 0x5c]
setne dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x18]
setge cl
xor edx, edx
cmp ecx, 5
setl dl
sub eax, edx
xor edx, edx
inc edx
cmp edx, eax
sbb eax, eax
xor edx, edx
inc eax
sub esi, eax
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 4]
sub esi, eax
mov eax, dword [ebp - 4]
cmp ecx, eax
setg dl
cmp edx, esi
jl 0x100240b9
xor ecx, ecx
mov eax, 0xffff
inc ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 8], ebx
jmp 0x10023ffc
mov eax, dword [ebp - 8]
mov dword [ebp + eax*4 - 0x98], 0x34832001
inc dword [ebp - 8]
cmp dword [ebp - 8], ecx
jl 0x10023feb
mov dword [ebp - 4], 0xfffffffb
cmp dword [ebp - 4], 7
jl 0x100241be
mov dword [ebp - 8], 0x2585fafe
xor edx, edx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], ebx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
cmp eax, ecx
setge dl
sub edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 8]
neg edx
sbb edx, edx
xor ecx, ecx
neg edx
cmp eax, edx
setg cl
cmp ecx, 0x494d
jle 0x10024077
cmp dword [ebp - 0x18], ebx
jne 0x10024077
mov esi, ebx
jmp 0x1002407c
xor edx, edx
lea esi, [edx + 1]
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
cmp ecx, eax
push 1
setge dl
xor ecx, ecx
cmp edx, esi
setle cl
xor eax, eax
cmp ecx, 3
pop ecx
setne al
mov dword [ebp - 0x98], eax
inc dword [ebp - 4]
cmp dword [ebp - 4], 7
jge 0x10024012
jmp 0x100241bb
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 8], 0x10
cmp dword [ebp - 8], 0x17
jge 0x100241bb
xor esi, esi
mov edi, 0xffff
inc esi
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 4], 0x196c9a5c
cmp dword [ebp - 0x34], ebx
jne 0x10024166
mov eax, dword [ebp - 0x34]
xor ebx, ebx
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x2c]
cmp ecx, eax
mov eax, dword [ebp - 0x2c]
setl bl
sub ebx, 0xd73c
neg ebx
sbb ebx, ebx
xor edx, edx
inc ebx
cmp ebx, eax
mov eax, dword [ebp - 0x18]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, 0xde77bf6b
setne cl
cmp eax, ecx
sbb eax, eax
xor edx, edx
neg eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
cmp eax, ecx
setg dl
sub edx, dword [ebp - 0x24]
neg edx
sbb edx, edx
xor ebx, ebx
inc edx
imul eax, edx, 0xfffb
test eax, eax
je 0x1002415b
mov ecx, esi
cmp dword [ebp - 0x2c], ebx
jne 0x1002415d
mov ecx, ebx
mov eax, dword [ebp - 0xc]
mov edx, ebx
sub ecx, eax
je 0x10024168
mov edx, esi
mov eax, dword [ebp - 0xc]
xor ecx, ecx
cmp edx, eax
setne cl
xor edx, edx
mov dword [ebp - 0x2c], ecx
add ecx, 0x3d58cdd2
mov eax, dword [ebp - 0x24]
cmp eax, ecx
setl dl
add edx, 0x6ec7
je 0x10024190
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
xor ecx, ecx
cmp eax, esi
setle cl
cmp edi, ecx
sbb eax, eax
neg eax
sub eax, dword [ebp - 4]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 4], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x17
jl 0x100240e0
mov edi, dword [ebp - 0x3c]
xor ecx, ecx
inc ecx
mov eax, dword [ebp - 0x38]
mov al, byte [eax]
cmp al, 0x30
jl 0x10024367
cmp al, 0x39
jg 0x10024367
mov dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 4], ebx
mov dword [ebp - 4], ebx
jmp 0x100241f3
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x90], 0x5755261f
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x100241e2
mov dword [ebp - 4], ebx
jmp 0x1002420b
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x54], 0x5dd68647
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x100241fd
mov dword [ebp - 0xc], 0x15
cmp dword [ebp - 0xc], 0xfffffff6
jle 0x10024348
push 2
pop esi
mov dword [ebp - 8], 0x1d8f8f57
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 4], ebx
jmp 0x10024244
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x8c], ebx
inc dword [ebp - 4]
cmp dword [ebp - 4], 3
jl 0x10024237
cmp dword [ebp - 0x90], ecx
jle 0x10024255
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x18], 0x734895c4
mov dword [ebp - 4], ebx
jmp 0x10024275
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xe0], 0xfff6
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x10024264
mov eax, dword [ebp - 0xe0]
xor edx, edx
mov eax, dword [ebp - 0x88]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, 0x30b137d3
mov eax, dword [ebp - 0xe0]
setne dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp eax, ecx
sbb eax, eax
neg eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x88]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0x84]
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov dword [ebp - 4], 3
jmp 0x1002432f
mov dword [ebp - 8], esi
cmp dword [ebp - 8], ebx
jl 0x10024316
mov eax, dword [ebp - 8]
xor ecx, ecx
mov edx, dword [ebp + eax*4 - 0x8c]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0x8c]
cmp edx, eax
setne cl
mov dword [ebp - 0x14], ecx
dec dword [ebp - 8]
jns 0x100242f3
mov byte [ebp - 0xd], bl
cmp byte [ebp - 0xd], 0
je 0x1002432c
push 0x6691
push ebx
call fcn.1002634f
pop ecx
pop ecx
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x18
jg 0x100242eb
inc dword [ebp - 0x54]
dec dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xfffffff6
push 1
pop ecx
jg 0x10024224
lea eax, [ebp - 0x38]
push eax
push 0x180c
lea edx, [ebp - 0x50]
call fcn.100230f5
pop ecx
pop ecx
mov ecx, dword [ebp - 0x38]
push 2
inc ecx
pop esi
jmp 0x10023edc
push 5
pop eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], eax
lea eax, [ebp - 0x94]
mov dword [ebp - 0x14], 0xed23b618
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], 0x6ff23b1a
mov dword [ebp - 0x14], 0xfffffffe
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x14], 0x165352f7
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x14], 0xbd0a7084
push eax
mov dword [ebp - 0x14], 0xffffffff
mov dword [ebp - 0x94], 0xfffffff6
push 0x283e
mov dword [ebp - 0x14], 0x8f6c
mov dword [ebp - 0xb4], 0x3342eb9
push ebx
call fcn.100245e4
lea eax, [ebp - 0x50]
push eax
push ebx
call fcn.100266d2
mov dword [ebp - 0x18], 0x3dfad5be
xor ecx, ecx
mov dword [ebp - 0x14], 0x51dd2e91
add esp, 0x14
mov dword [ebp - 0x18], 0x2d38ca8c
inc ecx
mov dword [ebp - 0x18], 0xdfd99643
mov dword [ebp - 0x18], 0x14a3a6d7
mov dword [ebp - 4], ebx
cmp dword [ebp - 4], 3
jge 0x10024430
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xec], ecx
inc dword [ebp - 4]
jmp 0x1002441b
mov dword [ebp - 4], ebx
jmp 0x10024443
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x80], 0xfffffffd
inc dword [ebp - 4]
cmp dword [ebp - 4], 4
jl 0x10024435
mov dword [ebp - 4], ebx
jmp 0x1002445c
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0x28], 0xcf1c
inc dword [ebp - 4]
cmp dword [ebp - 4], ecx
jl 0x1002444e
push 2
mov dword [ebp - 4], ebx
pop esi
jmp 0x1002447a
mov eax, dword [ebp - 4]
mov dword [ebp + eax*4 - 0xf4], 0xfffffff8
inc dword [ebp - 4]
cmp dword [ebp - 4], esi
jl 0x10024469
mov dword [ebp - 0x7c], esi
cmp dword [ebp - 0x7c], ebx
jl 0x10024498
mov eax, dword [ebp - 0x7c]
cmp dword [ebp + eax*4 - 0xec], ebx
jne 0x10024498
dec dword [ebp - 0x7c]
jns 0x10024487
cmp dword [ebp - 0x28], ebx
je 0x100244a4
cmp dword [ebp - 0x7c], ebx
je 0x100244a4
mov ebx, ecx
mov dword [ebp - 0x18], 0xf0a9
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
neg edx
sub edx, ebx
neg edx
push 0
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setl cl
xor eax, eax
cmp ecx, 0xfffffffb
setle al
xor edx, edx
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
setle dl
mov dword [ebp - 0x18], edx
xor edx, edx
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
cmp eax, ecx
mov eax, dword [ebp - 0x28]
setge dl
xor ebx, ebx
cmp edx, eax
mov eax, dword [ebp - 0xec]
setle bl
sub ebx, 0x4fa72d50
neg ebx
sbb ebx, ebx
xor ecx, ecx
inc ebx
cmp eax, ebx
mov eax, dword [ebp - 0x28]
setne cl
xor edx, edx
add eax, ecx
inc edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x74]
sub ecx, eax
cmp edx, ecx
pop edx
sbb eax, eax
neg eax
mov eax, dword [ebp - 0x28]
sets dl
xor ecx, ecx
cmp edx, eax
setl cl
xor al, al
mov dword [ebp - 0x7c], ecx
jmp 0x10024547
xor eax, eax
inc eax
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret