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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1003cb03
push eax
mov dword fs:[0], esp
sub esp, 0x70
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea edi, [esi + 0xa8]
lea ebp, [esi + 0x98]
mov eax, edi
mov ecx, ebp
mov bl, byte [edi]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
lea eax, [esi + 0xb8]
mov ecx, edi
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
lea eax, [esi + 0xc8]
mov ecx, eax
lea eax, [esi + 0xb8]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, esi
call fcn.1001ea80
test eax, eax
jne 0x1002431e
mov ecx, esi
call fcn.1001ea80
test eax, eax
je 0x10024313
movsx eax, bl
add eax, 0xffffffd2
cmp eax, 0x49
ja case.0x10024335.54
xor edx, edx
mov dl, byte [eax + 0x10024f68]
jmp dword [edx*4 + 0x10024f44]
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
test al, 0x10
je 0x10024354
and al, 1
neg al
sbb eax, eax
add eax, 0xa
jmp 0x1002435d
and al, 1
neg al
sbb eax, eax
add eax, 2
mov ebp, eax
xor edi, edi
cmp ebp, edi
jl 0x100246de
cmp ebp, 0x11
jge 0x100246de
cmp dword [esi + ebp*4 + 0xe8], edi
jne case.default.0x10024388
cmp ebp, 0x10
ja case.default.0x10024388
jmp dword [ebp*4 + 0x10024fb4]
push 4
call fcn.10030d66
add esp, 4
mov dword [esp + 0x90], eax
cmp eax, edi
mov dword [esp + 0x88], edi
je 0x100245b2
mov ecx, eax
call fcn.10025020
mov edi, eax
lea ecx, [esi + 0x14]
push edi
call fcn.1002c1d0
mov dword [esi + ebp*4 + 0xe8], edi
mov eax, edi
jmp 0x10024f2c
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x1002453c
push 1
push edi
mov ecx, eax
call fcn.10022be0
mov ebx, eax
jmp 0x1002453e
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x1002453c
push edi
push edi
mov ecx, eax
call fcn.10022be0
mov ebx, eax
jmp 0x1002453e
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x100245b2
push edi
push edi
jmp 0x100245a9
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x10024446
push edi
push edi
mov ecx, eax
call fcn.10022be0
mov edi, eax
push edi
lea ecx, [esi + 0x14]
call fcn.1002c1d0
push 0xa
lea ecx, [edi + 0x18]
jmp 0x100246c6
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x10024490
push 1
push edi
mov ecx, eax
call fcn.10022be0
mov ebx, eax
jmp 0x10024492
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x10024490
push edi
push edi
mov ecx, eax
call fcn.10022be0
mov ebx, eax
jmp 0x10024492
xor ebx, ebx
push ebx
lea ecx, [esi + 0x14]
call fcn.1002c1d0
lea edi, [ebx + 0x18]
push 0x20
mov ecx, edi
call fcn.10022c40
push 9
mov ecx, edi
call fcn.10022c40
push 0xd
mov ecx, edi
call fcn.10022c40
push 0xa
mov ecx, edi
call fcn.10022c40
mov dword [esi + ebp*4 + 0xe8], ebx
mov eax, ebx
jmp 0x10024f2c
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x100246ad
push 1
push edi
jmp 0x100246a4
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x100246ad
push edi
push edi
jmp 0x100246a4
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x1002453c
push 1
push 1
mov ecx, eax
call fcn.10022be0
mov ebx, eax
jmp 0x1002453e
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x1002453c
push edi
push 1
mov ecx, eax
call fcn.10022be0
mov ebx, eax
jmp 0x1002453e
xor ebx, ebx
push ebx
lea ecx, [esi + 0x14]
call fcn.1002c1d0
lea edi, [ebx + 4]
push 0x41
mov ecx, edi
call fcn.10022c40
push 0x5a
mov ecx, edi
call fcn.10022c40
push 0x61
mov ecx, edi
call fcn.10022c40
push 0x7a
mov ecx, edi
call fcn.10022c40
push 0x30
mov ecx, edi
call fcn.10022c40
push 0x39
mov ecx, edi
call fcn.10022c40
push 0x5f
lea ecx, [ebx + 0x18]
call fcn.10022c40
mov dword [esi + ebp*4 + 0xe8], ebx
mov eax, ebx
jmp 0x10024f2c
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x100245b2
push edi
push 1
mov ecx, eax
call fcn.10022be0
mov edi, eax
push edi
lea ecx, [esi + 0x14]
call fcn.1002c1d0
mov dword [esi + ebp*4 + 0xe8], edi
mov eax, edi
jmp 0x10024f2c
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x100245e3
push edi
push 1
mov ecx, eax
call fcn.10022be0
mov edi, eax
push edi
lea ecx, [esi + 0x14]
call fcn.1002c1d0
push 0xa
lea ecx, [edi + 0x18]
jmp 0x100246c6
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x1002462f
push 1
push 1
mov ecx, eax
call fcn.10022be0
mov ebx, eax
jmp 0x10024631
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x1002462f
push edi
push 1
mov ecx, eax
call fcn.10022be0
mov ebx, eax
jmp 0x10024631
xor ebx, ebx
push ebx
lea ecx, [esi + 0x14]
call fcn.1002c1d0
lea edi, [ebx + 0x18]
push 0x20
mov ecx, edi
call fcn.10022c40
push 9
mov ecx, edi
call fcn.10022c40
push 0xd
mov ecx, edi
call fcn.10022c40
push 0xa
mov ecx, edi
call fcn.10022c40
push 0xc
mov ecx, edi
call fcn.10022c40
push 0xb
mov ecx, edi
call fcn.10022c40
mov dword [esi + ebp*4 + 0xe8], ebx
mov eax, ebx
jmp 0x10024f2c
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x100246ad
push 1
jmp 0x100246a2
push 0x48
call fcn.10030d66
add esp, 4
cmp eax, edi
je 0x100246ad
push edi
push 1
mov ecx, eax
call fcn.10022be0
mov edi, eax
push edi
lea ecx, [esi + 0x14]
call fcn.1002c1d0
lea ebx, [edi + 4]
push 0x30
mov ecx, ebx
call fcn.10022c40
push 0x39
mov ecx, ebx
call fcn.10022c40
mov dword [esi + ebp*4 + 0xe8], edi
mov eax, dword [esi + ebp*4 + 0xe8]
jmp 0x10024f2c
push edi
jmp 0x10024f25
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx]
and edx, 0x10
or edx, 6
shr edx, 1
push edx
jmp 0x10024f25
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
and ecx, 0x10
or ecx, 8
shr ecx, 1
push ecx
jmp 0x10024f25
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
and eax, 0x10
or al, 0xa
shr eax, 1
push eax
jmp 0x10024f25
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx]
and edx, 0x10
or edx, 0xc
shr edx, 1
push edx
jmp 0x10024f25
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
and ecx, 0x10
or ecx, 0xe
shr ecx, 1
push ecx
jmp 0x10024f25
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
and al, 0x10
neg al
sbb eax, eax
and eax, 8
add eax, 8
push eax
jmp 0x10024f25
cmp byte [edi], 0x3a
jne 0x10024af2
cmp dword [edi + 4], 1
jne 0x10024af2
xor ebx, ebx
lea ecx, [esp + 0x6c]
push ebx
push ebx
call fcn.1001cce0
mov dword [esp + 0x6c], 0x1003d41c
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x88], 1
mov cl, byte [edi]
push 1
lea edx, [esp + 0x17]
mov byte [esp + 0x17], cl
push 1
push edx
lea ecx, [esp + 0x78]
call fcn.1001d720
mov eax, edi
mov ecx, ebp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, edi
mov eax, dword [eax + 0xc]
mov dword [ecx + 0xc], eax
lea eax, [esi + 0xb8]
mov ecx, eax
mov ebx, dword [ecx]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [edx + 8], ebx
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
lea ecx, [esi + 0xc8]
mov edx, dword [esi + 0xc8]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, esi
call fcn.1001ea80
test eax, eax
jne 0x10024834
mov ecx, esi
call fcn.1001ea80
test eax, eax
je 0x10024829
cmp byte [edi], 0
je 0x10024866
lea edx, [esp + 0x2c]
xor ebx, ebx
push edx
mov ecx, edi
mov byte [esp + 0x30], 0x5d
mov dword [esp + 0x34], 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
call fcn.1001e9b0
test eax, eax
je 0x100247ac
jmp 0x10024868
xor ebx, ebx
lea eax, [esi + 0xa8]
lea ecx, [esi + 0x98]
mov edx, eax
mov edi, dword [edx]
mov dword [ecx], edi
mov edi, dword [edx + 4]
mov dword [ecx + 4], edi
mov edi, dword [edx + 8]
mov dword [ecx + 8], edi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
lea ecx, [esi + 0xb8]
mov edx, ecx
mov edi, dword [edx]
mov dword [eax], edi
mov edi, dword [edx + 4]
mov dword [eax + 4], edi
mov edi, dword [edx + 8]
mov dword [eax + 8], edi
mov edx, dword [edx + 0xc]
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0xc8]
mov edx, dword [esi + 0xcc]
mov dword [ecx], eax
mov eax, dword [esi + 0xd0]
mov dword [ecx + 4], edx
mov edx, dword [esi + 0xd4]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
mov ecx, esi
call fcn.1001ea80
test eax, eax
jne 0x100248e3
mov ecx, esi
call fcn.1001ea80
test eax, eax
je 0x100248d8
push 0x10
call fcn.10030d66
mov ebp, eax
add esp, 4
cmp ebp, ebx
je 0x10024ac7
mov edi, dword [esp + 0x78]
cmp edi, ebx
jne 0x10024904
mov edi, 0x1003d470
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov dword [ebp], 0x1003d4a8
and eax, 0x10
mov dword [ebp + 8], eax
mov al, byte [edi + 1]
cmp al, 0x5e
jne 0x10024929
mov dword [ebp + 0xc], ebx
add edi, 2
jmp 0x10024931
mov dword [ebp + 0xc], 1
inc edi
push 6
push str.alnum:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x10024951
mov dword [ebp + 4], 0x1003200b
jmp 0x10024ac9
push 6
push str.alpha:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x10024971
mov dword [ebp + 4], 0x10031ee8
jmp 0x10024ac9
push 6
push str.ascii:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x10024991
mov dword [ebp + 4], 0x100320bd
jmp 0x10024ac9
push 6
push str.cntrl:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x100249b1
mov dword [ebp + 4], 0x10032095
jmp 0x10024ac9
push 6
push str.digit:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x100249d1
mov dword [ebp + 4], 0x10031f66
jmp 0x10024ac9
push 6
push str.graph:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x100249f1
mov dword [ebp + 4], 0x10032067
jmp 0x10024ac9
push 6
push str.lower:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x10024a11
mov dword [ebp + 4], fcn.10031f3e
jmp 0x10024ac9
push 6
push str.print:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x10024a31
mov dword [ebp + 4], 0x10032039
jmp 0x10024ac9
push 6
push str.punct:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x10024a4e
mov dword [ebp + 4], 0x10031fe3
jmp 0x10024ac9
push 6
push str.space:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x10024a6b
mov dword [ebp + 4], fcn.10031fbb
jmp 0x10024ac9
push 6
push str.upper:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x10024a88
mov dword [ebp + 4], fcn.10031f16
jmp 0x10024ac9
push 7
push str.xdigit:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x10024aa5
mov dword [ebp + 4], 0x10031f8e
jmp 0x10024ac9
push 6
push str.blank:
push edi
call fcn.100320d0
add esp, 0xc
test eax, eax
jne 0x10024ac2
mov dword [ebp + 4], 0x10025000
jmp 0x10024ac9
mov dword [ebp + 4], ebx
jmp 0x10024ac9
xor ebp, ebp
push ebp
lea ecx, [esi + 0x14]
call fcn.1002c1d0
mov eax, dword [esp + 0x78]
mov dword [esp + 0x6c], 0x1003d41c
cmp eax, ebx
je 0x10024aeb
push eax
call fcn.10030c72
add esp, 4
mov eax, ebp
jmp 0x10024f2c
cmp byte [edi], 0x5e
jne 0x10024bbe
cmp dword [edi + 4], 1
jne 0x10024bbe
mov ecx, edi
mov edx, dword [ecx]
mov dword [ebp], edx
mov eax, dword [ecx + 4]
mov dword [ebp + 4], eax
mov edx, dword [ecx + 8]
mov dword [ebp + 8], edx
mov edx, edi
mov eax, dword [ecx + 0xc]
mov dword [ebp + 0xc], eax
lea eax, [esi + 0xb8]
mov ecx, eax
mov ebx, dword [ecx]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [edx + 8], ebx
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
lea ecx, [esi + 0xc8]
mov edx, dword [esi + 0xc8]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov ecx, esi
call fcn.1001ea80
test eax, eax
jne 0x10024b74
mov ecx, esi
call fcn.1001ea80
test eax, eax
je 0x10024b69
push 0x48
call fcn.10030d66
add esp, 4
test eax, eax
je 0x10024bab
mov edx, dword [esp + 0x90]
push 0
mov ecx, dword [edx]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.10022be0
mov ebp, eax
lea ecx, [esi + 0x14]
push ebp
call fcn.1002c1d0
mov ebx, ebp
mov dword [esp + 0x18], ebx
jmp 0x10024bf7
xor ebp, ebp
lea ecx, [esi + 0x14]
push ebp
call fcn.1002c1d0
mov ebx, ebp
mov dword [esp + 0x18], ebx
jmp 0x10024bf7
push 0x48
call fcn.10030d66
add esp, 4
test eax, eax
je 0x10024be6
mov edx, dword [esp + 0x90]
push 1
mov ecx, dword [edx]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.10022be0
mov ebp, eax
jmp 0x10024be8
xor ebp, ebp
push ebp
lea ecx, [esi + 0x14]
call fcn.1002c1d0
mov dword [esp + 0x18], ebp
mov ebx, ebp
lea edx, [esp + 0x1c]
mov ebp, 1
xor eax, eax
push edx
mov ecx, edi
mov byte [esp + 0x20], 0
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
call fcn.1001e9b0
test eax, eax
jne 0x10024d4b
push 0
push 0
push ebp
push 0x5d
lea ecx, [esp + 0x4c]
call fcn.1001e5c0
push eax
mov ecx, edi
call fcn.1001e9b0
test eax, eax
jne 0x10024d4b
mov ecx, dword [esi + 0xac]
mov al, byte [edi]
cmp ecx, ebp
mov byte [esp + 0x14], al
jne 0x10024cad
cmp al, 0x2e
je 0x10024c93
cmp al, 0x77
je 0x10024c93
cmp al, 0x57
je 0x10024c93
cmp al, 0x73
je 0x10024c93
cmp al, 0x53
je 0x10024c93
cmp al, 0x64
je 0x10024c93
cmp al, 0x44
je 0x10024c93
cmp al, 0x5b
jne 0x10024cad
push 0
push 0
push ebp
push 0x3a
lea ecx, [esp + 0x5c]
call fcn.1001e5c0
push eax
lea ecx, [esi + 0xb8]
call fcn.1001e9b0
test eax, eax
je 0x10024cad
mov eax, dword [esp + 0x90]
mov ecx, esi
push eax
call fcn.10024280
push eax
lea ecx, [ebx + 0x2c]
call fcn.1002c1d0
jmp 0x10024d24
push 0
push 0
push ebp
push 0x2d
lea ecx, [esp + 0x6c]
call fcn.1001e5c0
push eax
lea ecx, [esi + 0xb8]
call fcn.1001e9b0
test eax, eax
je 0x10024d10
mov eax, dword [esi + 0xcc]
test eax, eax
jne 0x10024d10
mov ecx, dword [esp + 0x14]
lea ebp, [ebx + 4]
push ecx
mov ecx, ebp
call fcn.10022c40
mov dl, byte [esi + 0xc8]
mov ecx, ebp
push edx
call fcn.10022c40
mov ecx, esi
call fcn.10022a40
mov ecx, esi
call fcn.10022a40
mov ecx, esi
call fcn.10022a40
mov ebp, 1
jmp 0x10024d24
mov eax, dword [esp + 0x14]
lea ecx, [ebx + 0x18]
push eax
call fcn.10022c40
mov ecx, esi
call fcn.10022a40
lea ecx, [esp + 0x1c]
xor eax, eax
push ecx
mov ecx, edi
mov byte [esp + 0x20], 0
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
call fcn.1001e9b0
test eax, eax
je 0x10024c23
mov ecx, esi
call fcn.10022a40
mov edx, dword [esp + 0x90]
test byte [edx], 8
je 0x10024f1f
mov eax, dword [ebx + 0xc]
lea esi, [ebx + 4]
cdq
sub eax, edx
xor edi, edi
mov ebp, eax
sar ebp, 1
test ebp, ebp
jle 0x10024e76
mov eax, dword [esi + 0xc]
lea ecx, [eax + edi*2]
mov al, byte [eax + edi*2]
cmp al, 0x5a
jg 0x10024df1
cmp byte [ecx + 1], 0x41
jl 0x10024df1
cmp al, 0x41
jge 0x10024d92
mov al, 0x41
movsx ecx, al
push ecx
call fcn.10031dae
mov edx, dword [esi + 0xc]
mov bl, al
add esp, 4
mov byte [esp + 0x90], bl
mov al, byte [edx + edi*2 + 1]
cmp al, 0x5a
jle 0x10024db4
mov al, 0x5a
movsx eax, al
push eax
call fcn.10031dae
mov ecx, dword [esi + 0xc]
add esp, 4
mov byte [esp + 0x14], al
mov dl, byte [ecx + edi*2]
lea ecx, [ecx + edi*2]
cmp bl, dl
jl 0x10024dd6
cmp al, byte [ecx + 1]
jle 0x10024df1
mov edx, dword [esp + 0x90]
mov ecx, esi
push edx
call fcn.10022c40
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.10022c40
mov ecx, dword [esi + 0xc]
mov al, byte [ecx + edi*2]
lea ecx, [ecx + edi*2]
cmp al, 0x7a
jg 0x10024e69
cmp byte [ecx + 1], 0x61
jl 0x10024e69
cmp al, 0x61
jge 0x10024e0a
mov al, 0x61
movsx edx, al
push edx
call fcn.100315d0
mov bl, al
mov eax, dword [esi + 0xc]
add esp, 4
mov byte [esp + 0x90], bl
mov al, byte [eax + edi*2 + 1]
cmp al, 0x7a
jle 0x10024e2c
mov al, 0x7a
movsx ecx, al
push ecx
call fcn.100315d0
mov edx, dword [esi + 0xc]
add esp, 4
mov byte [esp + 0x14], al
lea ecx, [edx + edi*2]
mov dl, byte [edx + edi*2]
cmp bl, dl
jl 0x10024e4e
cmp al, byte [ecx + 1]
jle 0x10024e69
mov eax, dword [esp + 0x90]
mov ecx, esi
push eax
call fcn.10022c40
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.10022c40
inc edi
cmp edi, ebp
jl 0x10024d79
mov ebx, dword [esp + 0x18]
mov ebp, dword [ebx + 0x20]
lea esi, [ebx + 0x18]
xor edi, edi
test ebp, ebp
jle 0x10024f1f
mov edx, dword [esi + 0xc]
movsx eax, byte [edx + edi]
push eax
call fcn.10031f16
add esp, 4
test eax, eax
je 0x10024ece
mov ecx, dword [esi + 0xc]
movsx edx, byte [ecx + edi]
push edx
call fcn.10031dae
add esp, 4
mov ecx, ebx
push eax
call fcn.1002bf80
test eax, eax
jne 0x10024ece
mov eax, dword [esi + 0xc]
movsx ecx, byte [eax + edi]
push ecx
call fcn.10031dae
add esp, 4
mov ecx, esi
push eax
call fcn.10022c40
mov edx, dword [esi + 0xc]
movsx eax, byte [edx + edi]
push eax
call fcn.10031f3e
add esp, 4
test eax, eax
je 0x10024f16
mov ecx, dword [esi + 0xc]
movsx edx, byte [ecx + edi]
push edx
call fcn.100315d0
add esp, 4
mov ecx, ebx
push eax
call fcn.1002bf80
test eax, eax
jne 0x10024f16
mov eax, dword [esi + 0xc]
movsx ecx, byte [eax + edi]
push ecx
call fcn.100315d0
add esp, 4
mov ecx, esi
push eax
call fcn.10022c40
inc edi
cmp edi, ebp
jl 0x10024e86
mov eax, ebx
jmp 0x10024f2c
push 0
mov ecx, esi
call fcn.1001f8f0
mov ecx, dword [esp + 0x80]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x7c
ret 4