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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x448573
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.0040dd30
test eax, eax
jne 0x410fee
mov ecx, esi
call fcn.0040dd30
test eax, eax
je 0x410fe3
movsx eax, bl
add eax, 0xffffffd2
cmp eax, 0x49
ja case.0x411005.54
xor edx, edx
mov dl, byte [eax + 0x411c38]
jmp dword [edx*4 + 0x411c14]
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
test al, 0x10
je 0x411024
and al, 1
neg al
sbb eax, eax
add eax, 0xa
jmp 0x41102d
and al, 1
neg al
sbb eax, eax
add eax, 2
mov ebp, eax
xor edi, edi
cmp ebp, edi
jl 0x4113ae
cmp ebp, 0x11
jge 0x4113ae
cmp dword [esi + ebp*4 + 0xe8], edi
jne case.default.0x411058
cmp ebp, 0x10
ja case.default.0x411058
jmp dword [ebp*4 + 0x411c84]
push 4
call fcn.004405c5
add esp, 4
mov dword [esp + 0x90], eax
cmp eax, edi
mov dword [esp + 0x88], edi
je 0x411282
mov ecx, eax
call fcn.00411cf0
mov edi, eax
lea ecx, [esi + 0x14]
push edi
call fcn.0040f840
mov dword [esi + ebp*4 + 0xe8], edi
mov eax, edi
jmp 0x411bfc
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x41120c
push 1
push edi
mov ecx, eax
call fcn.00410570
mov ebx, eax
jmp 0x41120e
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x41120c
push edi
push edi
mov ecx, eax
call fcn.00410570
mov ebx, eax
jmp 0x41120e
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x411282
push edi
push edi
jmp 0x411279
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x411116
push edi
push edi
mov ecx, eax
call fcn.00410570
mov edi, eax
push edi
lea ecx, [esi + 0x14]
call fcn.0040f840
push 0xa
lea ecx, [edi + 0x18]
jmp 0x411396
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x411160
push 1
push edi
mov ecx, eax
call fcn.00410570
mov ebx, eax
jmp 0x411162
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x411160
push edi
push edi
mov ecx, eax
call fcn.00410570
mov ebx, eax
jmp 0x411162
xor ebx, ebx
push ebx
lea ecx, [esi + 0x14]
call fcn.0040f840
lea edi, [ebx + 0x18]
push 0x20
mov ecx, edi
call fcn.004105d0
push 9
mov ecx, edi
call fcn.004105d0
push 0xd
mov ecx, edi
call fcn.004105d0
push 0xa
mov ecx, edi
call fcn.004105d0
mov dword [esi + ebp*4 + 0xe8], ebx
mov eax, ebx
jmp 0x411bfc
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x41137d
push 1
push edi
jmp 0x411374
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x41137d
push edi
push edi
jmp 0x411374
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x41120c
push 1
push 1
mov ecx, eax
call fcn.00410570
mov ebx, eax
jmp 0x41120e
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x41120c
push edi
push 1
mov ecx, eax
call fcn.00410570
mov ebx, eax
jmp 0x41120e
xor ebx, ebx
push ebx
lea ecx, [esi + 0x14]
call fcn.0040f840
lea edi, [ebx + 4]
push 0x41
mov ecx, edi
call fcn.004105d0
push 0x5a
mov ecx, edi
call fcn.004105d0
push 0x61
mov ecx, edi
call fcn.004105d0
push 0x7a
mov ecx, edi
call fcn.004105d0
push 0x30
mov ecx, edi
call fcn.004105d0
push 0x39
mov ecx, edi
call fcn.004105d0
push 0x5f
lea ecx, [ebx + 0x18]
call fcn.004105d0
mov dword [esi + ebp*4 + 0xe8], ebx
mov eax, ebx
jmp 0x411bfc
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x411282
push edi
push 1
mov ecx, eax
call fcn.00410570
mov edi, eax
push edi
lea ecx, [esi + 0x14]
call fcn.0040f840
mov dword [esi + ebp*4 + 0xe8], edi
mov eax, edi
jmp 0x411bfc
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x4112b3
push edi
push 1
mov ecx, eax
call fcn.00410570
mov edi, eax
push edi
lea ecx, [esi + 0x14]
call fcn.0040f840
push 0xa
lea ecx, [edi + 0x18]
jmp 0x411396
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x4112ff
push 1
push 1
mov ecx, eax
call fcn.00410570
mov ebx, eax
jmp 0x411301
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x4112ff
push edi
push 1
mov ecx, eax
call fcn.00410570
mov ebx, eax
jmp 0x411301
xor ebx, ebx
push ebx
lea ecx, [esi + 0x14]
call fcn.0040f840
lea edi, [ebx + 0x18]
push 0x20
mov ecx, edi
call fcn.004105d0
push 9
mov ecx, edi
call fcn.004105d0
push 0xd
mov ecx, edi
call fcn.004105d0
push 0xa
mov ecx, edi
call fcn.004105d0
push 0xc
mov ecx, edi
call fcn.004105d0
push 0xb
mov ecx, edi
call fcn.004105d0
mov dword [esi + ebp*4 + 0xe8], ebx
mov eax, ebx
jmp 0x411bfc
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x41137d
push 1
jmp 0x411372
push 0x48
call fcn.004405c5
add esp, 4
cmp eax, edi
je 0x41137d
push edi
push 1
mov ecx, eax
call fcn.00410570
mov edi, eax
push edi
lea ecx, [esi + 0x14]
call fcn.0040f840
lea ebx, [edi + 4]
push 0x30
mov ecx, ebx
call fcn.004105d0
push 0x39
mov ecx, ebx
call fcn.004105d0
mov dword [esi + ebp*4 + 0xe8], edi
mov eax, dword [esi + ebp*4 + 0xe8]
jmp 0x411bfc
push edi
jmp 0x411bf5
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx]
and edx, 0x10
or edx, 6
shr edx, 1
push edx
jmp 0x411bf5
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
and ecx, 0x10
or ecx, 8
shr ecx, 1
push ecx
jmp 0x411bf5
mov edx, dword [esp + 0x90]
mov eax, dword [edx]
and eax, 0x10
or al, 0xa
shr eax, 1
push eax
jmp 0x411bf5
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx]
and edx, 0x10
or edx, 0xc
shr edx, 1
push edx
jmp 0x411bf5
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
and ecx, 0x10
or ecx, 0xe
shr ecx, 1
push ecx
jmp 0x411bf5
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 0x411bf5
cmp byte [edi], 0x3a
jne 0x4117c2
cmp dword [edi + 4], 1
jne 0x4117c2
xor ebx, ebx
lea ecx, [esp + 0x6c]
push ebx
push ebx
call fcn.00410390
mov dword [esp + 0x6c], 0x44bb74
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.00414d60
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.0040dd30
test eax, eax
jne 0x411504
mov ecx, esi
call fcn.0040dd30
test eax, eax
je 0x4114f9
cmp byte [edi], 0
je 0x411536
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.0040dd00
test eax, eax
je 0x41147c
jmp 0x411538
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.0040dd30
test eax, eax
jne 0x4115b3
mov ecx, esi
call fcn.0040dd30
test eax, eax
je 0x4115a8
push 0x10
call fcn.004405c5
mov ebp, eax
add esp, 4
cmp ebp, ebx
je 0x411797
mov edi, dword [esp + 0x78]
cmp edi, ebx
jne 0x4115d4
mov edi, 0x44bb78
mov eax, dword [esp + 0x90]
mov eax, dword [eax]
mov dword [ebp], 0x44bbac
and eax, 0x10
mov dword [ebp + 8], eax
mov al, byte [edi + 1]
cmp al, 0x5e
jne 0x4115f9
mov dword [ebp + 0xc], ebx
add edi, 2
jmp 0x411601
mov dword [ebp + 0xc], 1
inc edi
push 6
push str.alnum:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x411621
mov dword [ebp + 4], 0x41e2ca
jmp 0x411799
push 6
push str.alpha:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x411641
mov dword [ebp + 4], 0x41e1a7
jmp 0x411799
push 6
push str.ascii:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x411661
mov dword [ebp + 4], 0x41e37c
jmp 0x411799
push 6
push str.cntrl:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x411681
mov dword [ebp + 4], 0x41e354
jmp 0x411799
push 6
push str.digit:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x4116a1
mov dword [ebp + 4], 0x41e225
jmp 0x411799
push 6
push str.graph:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x4116c1
mov dword [ebp + 4], 0x41e326
jmp 0x411799
push 6
push str.lower:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x4116e1
mov dword [ebp + 4], fcn.0041e1fd
jmp 0x411799
push 6
push str.print:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x411701
mov dword [ebp + 4], 0x41e2f8
jmp 0x411799
push 6
push str.punct:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x41171e
mov dword [ebp + 4], 0x41e2a2
jmp 0x411799
push 6
push str.space:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x41173b
mov dword [ebp + 4], fcn.0041e27a
jmp 0x411799
push 6
push str.upper:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x411758
mov dword [ebp + 4], fcn.0041e1d5
jmp 0x411799
push 7
push str.xdigit:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x411775
mov dword [ebp + 4], 0x41e24d
jmp 0x411799
push 6
push str.blank:
push edi
call fcn.00420000
add esp, 0xc
test eax, eax
jne 0x411792
mov dword [ebp + 4], 0x411cd0
jmp 0x411799
mov dword [ebp + 4], ebx
jmp 0x411799
xor ebp, ebp
push ebp
lea ecx, [esi + 0x14]
call fcn.0040f840
mov eax, dword [esp + 0x78]
mov dword [esp + 0x6c], 0x44bb74
cmp eax, ebx
je 0x4117bb
push eax
call fcn.0041dc55
add esp, 4
mov eax, ebp
jmp 0x411bfc
cmp byte [edi], 0x5e
jne 0x41188e
cmp dword [edi + 4], 1
jne 0x41188e
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.0040dd30
test eax, eax
jne 0x411844
mov ecx, esi
call fcn.0040dd30
test eax, eax
je 0x411839
push 0x48
call fcn.004405c5
add esp, 4
test eax, eax
je 0x41187b
mov edx, dword [esp + 0x90]
push 0
mov ecx, dword [edx]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.00410570
mov ebp, eax
lea ecx, [esi + 0x14]
push ebp
call fcn.0040f840
mov ebx, ebp
mov dword [esp + 0x18], ebx
jmp 0x4118c7
xor ebp, ebp
lea ecx, [esi + 0x14]
push ebp
call fcn.0040f840
mov ebx, ebp
mov dword [esp + 0x18], ebx
jmp 0x4118c7
push 0x48
call fcn.004405c5
add esp, 4
test eax, eax
je 0x4118b6
mov edx, dword [esp + 0x90]
push 1
mov ecx, dword [edx]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.00410570
mov ebp, eax
jmp 0x4118b8
xor ebp, ebp
push ebp
lea ecx, [esi + 0x14]
call fcn.0040f840
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.0040dd00
test eax, eax
jne 0x411a1b
push 0
push 0
push ebp
push 0x5d
lea ecx, [esp + 0x4c]
call fcn.0040dca0
push eax
mov ecx, edi
call fcn.0040dd00
test eax, eax
jne 0x411a1b
mov ecx, dword [esi + 0xac]
mov al, byte [edi]
cmp ecx, ebp
mov byte [esp + 0x14], al
jne 0x41197d
cmp al, 0x2e
je 0x411963
cmp al, 0x77
je 0x411963
cmp al, 0x57
je 0x411963
cmp al, 0x73
je 0x411963
cmp al, 0x53
je 0x411963
cmp al, 0x64
je 0x411963
cmp al, 0x44
je 0x411963
cmp al, 0x5b
jne 0x41197d
push 0
push 0
push ebp
push 0x3a
lea ecx, [esp + 0x5c]
call fcn.0040dca0
push eax
lea ecx, [esi + 0xb8]
call fcn.0040dd00
test eax, eax
je 0x41197d
mov eax, dword [esp + 0x90]
mov ecx, esi
push eax
call fcn.00410f50
push eax
lea ecx, [ebx + 0x2c]
call fcn.0040f840
jmp 0x4119f4
push 0
push 0
push ebp
push 0x2d
lea ecx, [esp + 0x6c]
call fcn.0040dca0
push eax
lea ecx, [esi + 0xb8]
call fcn.0040dd00
test eax, eax
je 0x4119e0
mov eax, dword [esi + 0xcc]
test eax, eax
jne 0x4119e0
mov ecx, dword [esp + 0x14]
lea ebp, [ebx + 4]
push ecx
mov ecx, ebp
call fcn.004105d0
mov dl, byte [esi + 0xc8]
mov ecx, ebp
push edx
call fcn.004105d0
mov ecx, esi
call fcn.004103b0
mov ecx, esi
call fcn.004103b0
mov ecx, esi
call fcn.004103b0
mov ebp, 1
jmp 0x4119f4
mov eax, dword [esp + 0x14]
lea ecx, [ebx + 0x18]
push eax
call fcn.004105d0
mov ecx, esi
call fcn.004103b0
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.0040dd00
test eax, eax
je 0x4118f3
mov ecx, esi
call fcn.004103b0
mov edx, dword [esp + 0x90]
test byte [edx], 8
je 0x411bef
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 0x411b46
mov eax, dword [esi + 0xc]
lea ecx, [eax + edi*2]
mov al, byte [eax + edi*2]
cmp al, 0x5a
jg 0x411ac1
cmp byte [ecx + 1], 0x41
jl 0x411ac1
cmp al, 0x41
jge 0x411a62
mov al, 0x41
movsx ecx, al
push ecx
call fcn.0041feb9
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 0x411a84
mov al, 0x5a
movsx eax, al
push eax
call fcn.0041feb9
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 0x411aa6
cmp al, byte [ecx + 1]
jle 0x411ac1
mov edx, dword [esp + 0x90]
mov ecx, esi
push edx
call fcn.004105d0
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.004105d0
mov ecx, dword [esi + 0xc]
mov al, byte [ecx + edi*2]
lea ecx, [ecx + edi*2]
cmp al, 0x7a
jg 0x411b39
cmp byte [ecx + 1], 0x61
jl 0x411b39
cmp al, 0x61
jge 0x411ada
mov al, 0x61
movsx edx, al
push edx
call fcn.0041fd7e
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 0x411afc
mov al, 0x7a
movsx ecx, al
push ecx
call fcn.0041fd7e
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 0x411b1e
cmp al, byte [ecx + 1]
jle 0x411b39
mov eax, dword [esp + 0x90]
mov ecx, esi
push eax
call fcn.004105d0
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.004105d0
inc edi
cmp edi, ebp
jl 0x411a49
mov ebx, dword [esp + 0x18]
mov ebp, dword [ebx + 0x20]
lea esi, [ebx + 0x18]
xor edi, edi
test ebp, ebp
jle 0x411bef
mov edx, dword [esi + 0xc]
movsx eax, byte [edx + edi]
push eax
call fcn.0041e1d5
add esp, 4
test eax, eax
je 0x411b9e
mov ecx, dword [esi + 0xc]
movsx edx, byte [ecx + edi]
push edx
call fcn.0041feb9
add esp, 4
mov ecx, ebx
push eax
call fcn.00415130
test eax, eax
jne 0x411b9e
mov eax, dword [esi + 0xc]
movsx ecx, byte [eax + edi]
push ecx
call fcn.0041feb9
add esp, 4
mov ecx, esi
push eax
call fcn.004105d0
mov edx, dword [esi + 0xc]
movsx eax, byte [edx + edi]
push eax
call fcn.0041e1fd
add esp, 4
test eax, eax
je 0x411be6
mov ecx, dword [esi + 0xc]
movsx edx, byte [ecx + edi]
push edx
call fcn.0041fd7e
add esp, 4
mov ecx, ebx
push eax
call fcn.00415130
test eax, eax
jne 0x411be6
mov eax, dword [esi + 0xc]
movsx ecx, byte [eax + edi]
push ecx
call fcn.0041fd7e
add esp, 4
mov ecx, esi
push eax
call fcn.004105d0
inc edi
cmp edi, ebp
jl 0x411b56
mov eax, ebx
jmp 0x411bfc
push 0
mov ecx, esi
call fcn.0040eba0
mov ecx, dword [esp + 0x80]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x7c
ret 4