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

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.004113a0
cmp word [esi + 0x90], 0x3f
jne 0x414761
cmp dword [esi + 0x94], 1
jne 0x414761
mov ecx, esi
call fcn.004113a0
movzx ecx, word [esi + 0x90]
movzx eax, cx
xor edi, edi
add eax, 0xffffffdf
mov ebx, 0x3e
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], ebx
cmp eax, 0x31
ja case.0x413da0.41
movzx eax, byte [eax + 0x4148a0]
mov ebp, dword [esp + 0x3c]
jmp dword [eax*4 + 0x41487c]
mov dword [esp + 0x18], 1
mov ecx, esi
call fcn.004113a0
push 0xc
call fcn.0049f1a2
mov edi, eax
add esp, 4
test edi, edi
je 0x413e07
mov ecx, ebp
mov edx, dword [ecx]
and edx, 0xffffffef
push edx
mov ecx, esi
call fcn.00413bc0
mov dword [edi + 4], eax
xor eax, eax
cmp dword [esp + 0x18], eax
push edi
sete al
mov ecx, esi
mov dword [edi], vtable.CAssertElxT_0_.0
mov dword [edi + 8], eax
call fcn.0040e0e0
mov ecx, esi
mov edi, eax
call fcn.004113a0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
xor edi, edi
push edi
mov ecx, esi
call fcn.0040e0e0
mov ecx, esi
mov edi, eax
call fcn.004113a0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
movzx eax, word [esi + 0xa0]
cmp eax, 0x21
je 0x413e39
cmp eax, 0x3d
je 0x413e41
jmp case.0x413da0.39
mov dword [esp + 0x18], 1
mov ecx, esi
call fcn.004113a0
mov ecx, esi
call fcn.004113a0
push 0xc
call fcn.0049f1a2
mov edi, eax
add esp, 4
test edi, edi
je 0x413e84
mov ecx, dword [ebp]
or ecx, 0x10
push ecx
mov ecx, esi
call fcn.00413bc0
xor edx, edx
cmp dword [esp + 0x18], edx
mov dword [edi], vtable.CAssertElxT_0_.0
sete dl
mov dword [edi + 4], eax
mov dword [edi + 8], edx
jmp 0x413e86
xor edi, edi
push edi
mov ecx, esi
call fcn.0040e0e0
mov edi, eax
test edi, edi
jne 0x41474e
cmp word [esi + 0x90], 0x50
jne case.0x413da0.34
mov ecx, esi
call fcn.004113a0
movzx eax, word [esi + 0x90]
cmp ax, 0x3c
jne 0x413ebc
mov dword [esp + 0x14], ebx
jmp 0x413eca
cmp ax, 0x27
jne 0x413eca
mov dword [esp + 0x14], 0x27
mov ecx, esi
call fcn.004113a0
mov eax, dword [esi + 0xc]
mov dword [esp + 0x24], eax
inc eax
push 0x18
mov dword [esi + 0xc], eax
call fcn.0049f1a2
add esp, 4
test eax, eax
je 0x413efa
mov ecx, dword [ebp]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.0040fec0
jmp 0x413efc
xor eax, eax
push eax
mov ecx, esi
call fcn.0040e0e0
push 0x1c
mov dword [esp + 0x24], eax
call fcn.0049f1a2
add esp, 4
test eax, eax
je 0x413f2b
mov edx, dword [ebp]
shr edx, 4
and edx, 1
push edx
push 0xffffffffffffffff
mov ecx, eax
call fcn.0040e850
jmp 0x413f2d
xor eax, eax
push eax
mov ecx, esi
call fcn.0040e0e0
push 0x1c
mov ebx, eax
call fcn.0049f1a2
add esp, 4
test eax, eax
je 0x413f5c
mov ecx, dword [ebp]
shr ecx, 4
not ecx
and ecx, 1
push ecx
push 0xffffffffffffffff
mov ecx, eax
call fcn.0040e850
jmp 0x413f5e
xor eax, eax
push eax
mov ecx, esi
call fcn.0040e0e0
xor ebp, ebp
mov dword [esp + 0x1c], eax
lea edi, [ebx + 0xc]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x28], vtable.CBufferT_char_.0
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], ebp
cmp word [esi + 0x90], bp
je 0x413ffa
mov ebp, dword [esp + 0x14]
movzx eax, word [esi + 0x90]
cmp ax, bp
je 0x413ff6
push 1
movzx edx, ax
push 1
lea eax, [esp + 0x20]
push eax
mov ecx, edi
mov dword [esp + 0x24], edx
call fcn.0040e7b0
movzx eax, word [esi + 0x90]
movzx ecx, al
cmp cx, ax
jne 0x413fce
mov dl, byte [esi + 0x90]
mov byte [esp + 0x10], dl
jmp 0x413fd3
mov byte [esp + 0x10], 0
push 1
push 1
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x34]
call fcn.0040e340
mov ecx, esi
call fcn.004113a0
cmp word [esi + 0x90], 0
jne 0x413f90
mov ebp, dword [esp + 0x2c]
mov ecx, esi
call fcn.004113a0
mov dword [esp + 0x18], ebp
test ebp, ebp
jne 0x414011
mov dword [esp + 0x18], 0x4bad50
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.0040e290
add esp, 8
test eax, eax
je 0x41404b
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp byte [ecx], al
sete al
test eax, eax
je 0x41404b
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [ebx + 4], eax
mov ecx, edi
mov dword [edx + 4], eax
call fcn.004107d0
mov edi, dword [esp + 0x20]
lea ebp, [edi + 4]
push ebx
mov ecx, ebp
call fcn.0040e980
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.00413bc0
push eax
mov ecx, ebp
call fcn.0040e980
mov edx, dword [esp + 0x1c]
push edx
mov ecx, ebp
call fcn.0040e980
mov ebx, dword [esp + 0x24]
push 0
push ebx
lea ecx, [esi + 0x44]
call fcn.0040df40
mov eax, dword [esi + 0x48]
lea ecx, [esp + 0x28]
mov dword [eax + ebx*4], edi
call fcn.0040dfc0
mov ecx, esi
call fcn.004113a0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
mov ecx, esi
call fcn.004113a0
push 8
call fcn.0049f1a2
mov edi, eax
add esp, 4
test edi, edi
je 0x413e07
mov ecx, ebp
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.00413bc0
mov dword [edi], vtable.CIndependentElxT_0_.0
mov dword [edi + 4], eax
jmp 0x413e09
mov ecx, esi
call fcn.004113a0
xor edi, edi
cmp word [esi + 0x90], di
je 0x414124
jmp 0x414100
movzx eax, word [esi + 0x90]
push eax
call fcn.0049fd16
add esp, 4
test eax, eax
je 0x414124
mov ecx, esi
call fcn.004113a0
cmp word [esi + 0x90], di
jne 0x414100
movzx eax, word [esi + 0x90]
cmp ax, 0x3c
je 0x4141e0
cmp ax, 0x27
je 0x4141e0
xor ecx, ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], vtable.CBufferT_char_.0
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], ecx
cmp ax, di
je 0x4141ac
lea ebx, [ebx]
movzx eax, word [esi + 0x90]
cmp ax, 0x29
je 0x4141a8
movzx ecx, al
cmp cx, ax
jne 0x414181
mov dl, byte [esi + 0x90]
mov byte [esp + 0x3c], dl
jmp 0x414186
mov byte [esp + 0x3c], 0
push 1
push 1
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x34]
call fcn.0040e340
mov ecx, esi
call fcn.004113a0
cmp word [esi + 0x90], di
jne 0x414160
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x3c], ecx
cmp ecx, edi
jne 0x4141c0
mov dword [esp + 0x3c], 0x4bad50
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.0040e290
push 0x1c
call fcn.0049f1a2
add esp, 0xc
cmp eax, edi
jmp 0x41460a
xor edx, edx
cmp ax, 0x3c
setne dl
push 0x1c
dec edx
and edx, 0x17
add edx, 0x27
movzx eax, dx
mov dword [esp + 0x18], eax
call fcn.0049f1a2
add esp, 4
cmp eax, edi
je 0x414210
push 0xfffffffffffffffd
mov ecx, eax
call fcn.0040e8c0
jmp 0x414212
xor eax, eax
push eax
mov ecx, esi
call fcn.0040e0e0
mov ecx, esi
mov ebx, eax
call fcn.004113a0
xor ebp, ebp
lea edi, [ebx + 0xc]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x28], vtable.CBufferT_char_.0
mov dword [esp + 0x34], ebp
mov dword [esp + 0x2c], ebp
cmp word [esi + 0x90], bp
je 0x4142bb
jmp 0x414250
movzx eax, word [esi + 0x90]
cmp ax, word [esp + 0x14]
je 0x4142b7
movzx ecx, ax
push 1
push 1
lea edx, [esp + 0x44]
mov dword [esp + 0x44], ecx
push edx
mov ecx, edi
call fcn.0040e7b0
movzx eax, word [esi + 0x90]
movzx ecx, al
cmp cx, ax
jne 0x414290
mov dl, byte [esi + 0x90]
mov byte [esp + 0x3c], dl
jmp 0x414295
mov byte [esp + 0x3c], 0
push 1
push 1
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x34]
call fcn.0040e340
mov ecx, esi
call fcn.004113a0
cmp word [esi + 0x90], bp
jne 0x414250
mov ebp, dword [esp + 0x2c]
mov ecx, esi
call fcn.004113a0
mov dword [esp + 0x3c], ebp
test ebp, ebp
jne 0x4142d2
mov dword [esp + 0x3c], 0x4bad50
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.0040e290
add esp, 8
test eax, eax
je 0x414305
mov ecx, dword [esp + 0x3c]
xor eax, eax
cmp byte [ecx], al
sete al
test eax, eax
je 0x414305
mov edx, dword [esp + 0x24]
mov ecx, edi
mov dword [ebx + 8], edx
call fcn.004107d0
push ebx
lea ecx, [esi + 0x34]
call fcn.0040e980
lea ecx, [esp + 0x28]
mov edi, ebx
call fcn.0040dfc0
mov ecx, esi
call fcn.004113a0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
push 0x24
call fcn.0049f1a2
add esp, 4
test eax, eax
je 0x414343
mov ecx, eax
call fcn.0040e950
jmp 0x414345
xor eax, eax
push eax
mov ecx, esi
call fcn.0040e0e0
lea ecx, [esp + 0x28]
mov ebx, eax
mov eax, 0x3f
xor ebp, ebp
push ecx
lea ecx, [esi + 0xa0]
mov word [esp + 0x2c], ax
mov dword [esp + 0x30], 1
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
call fcn.0040e0b0
mov ecx, esi
test eax, eax
je 0x414393
mov edi, dword [esp + 0x3c]
push edi
call fcn.00413d40
mov dword [ebx + 0x18], eax
jmp 0x4144cc
call fcn.004113a0
mov ebp, dword [esi + 0x98]
push 0xc
call fcn.0049f1a2
mov edi, eax
add esp, 4
test edi, edi
je 0x4143d2
mov edx, dword [esp + 0x3c]
mov eax, dword [edx]
push eax
mov ecx, esi
call fcn.00413bc0
mov dword [edi + 4], eax
mov dword [edi], vtable.CAssertElxT_0_.0
mov dword [edi + 8], 1
mov eax, edi
xor edi, edi
jmp 0x4143d6
xor edi, edi
xor eax, eax
push eax
mov ecx, esi
call fcn.0040e0e0
mov dword [ebx + 0x18], eax
mov eax, dword [esi + 0x78]
cmp eax, edi
jne 0x4143ed
mov eax, 0x4bad64
mov ecx, dword [esi + 0x98]
push 1
sub ecx, ebp
push ecx
lea edx, [eax + ebp*2]
push edx
lea ecx, [ebx + 8]
call fcn.0040e7b0
cmp ebp, dword [esi + 0x98]
mov dword [esp + 0x30], edi
mov dword [esp + 0x28], vtable.CBufferT_char_.0
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], edi
jge 0x41446d
cmp ebp, dword [esi + 0x7c]
jl 0x414429
xor eax, eax
jmp 0x414430
mov eax, dword [esi + 0x78]
movzx eax, word [eax + ebp*2]
mov ecx, 0xff
and cx, ax
cmp cx, ax
setne dl
dec dl
push 1
and dl, al
push 1
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x1c], dl
call fcn.0040e340
inc ebp
cmp ebp, dword [esi + 0x98]
jl 0x414420
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], eax
cmp eax, edi
jne 0x414475
mov dword [esp + 0x18], 0x4bad50
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.0040e290
add esp, 8
test eax, eax
je 0x4144a6
mov ecx, dword [esp + 0x18]
xor eax, eax
cmp byte [ecx], al
sete al
cmp eax, edi
je 0x4144a6
mov edx, dword [esp + 0x24]
mov dword [ebx + 4], edx
mov dword [ebx + 0x18], edi
jmp 0x4144b6
push ebx
lea ecx, [esi + 0x64]
mov dword [ebx + 4], 0xffffffff
call fcn.0040e980
mov ecx, esi
call fcn.004113a0
lea ecx, [esp + 0x28]
call fcn.0040dfc0
mov edi, dword [esp + 0x3c]
xor ebp, ebp
mov eax, dword [edi]
lea ecx, [esp + 0x3c]
push ecx
mov ecx, esi
mov dword [esp + 0x40], eax
call fcn.00413660
mov dword [ebx + 0x1c], eax
cmp word [esi + 0x90], 0x7c
jne 0x414514
mov ecx, esi
call fcn.004113a0
mov edx, dword [edi]
push edx
mov ecx, esi
call fcn.00413bc0
mov ecx, esi
mov dword [ebx + 0x20], eax
mov edi, ebx
call fcn.004113a0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
mov ecx, esi
mov dword [ebx + 0x20], ebp
mov edi, ebx
call fcn.004113a0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
xor ebx, ebx
cmp cx, bx
je 0x414557
movzx eax, word [esi + 0x90]
push eax
call fcn.0049fd16
add esp, 4
test eax, eax
je 0x414557
mov ecx, esi
call fcn.004113a0
cmp word [esi + 0x90], bx
jne 0x414533
movzx eax, word [esi + 0x90]
cmp ax, 0x30
jb 0x41464b
cmp ax, 0x39
ja 0x41464b
xor ecx, ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x28], vtable.CBufferT_char_.0
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], ecx
cmp ax, bx
je 0x4145db
lea ecx, [ecx]
movzx eax, word [esi + 0x90]
cmp ax, 0x29
je 0x4145d7
movzx ecx, al
cmp cx, ax
jne 0x4145b1
mov dl, byte [esi + 0x90]
mov byte [esp + 0x3c], dl
jmp 0x4145b5
mov byte [esp + 0x3c], bl
push 1
push 1
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x34]
call fcn.0040e340
mov ecx, esi
call fcn.004113a0
cmp word [esi + 0x90], bx
jne 0x414590
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], ecx
cmp ecx, ebx
jne 0x4145ef
mov dword [esp + 0x3c], 0x4bad50
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.0040e290
push 0x1c
call fcn.0049f1a2
add esp, 0xc
cmp eax, ebx
je 0x41461a
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, eax
call fcn.0040e8c0
jmp 0x41461c
xor eax, eax
push eax
mov ecx, esi
call fcn.0040e0e0
mov edi, eax
push edi
lea ecx, [esi + 0x34]
call fcn.0040e980
lea ecx, [esp + 0x28]
call fcn.0040dfc0
mov ecx, esi
call fcn.004113a0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
mov edx, dword [esp + 0x3c]
mov ebx, dword [edx]
mov ebp, 1
cmp word [esi + 0x90], 0
jne 0x41466c
cmp dword [esi + 0x94], ebp
je 0x4146f4
movzx ecx, word [esi + 0x90]
cmp cx, 0x3a
je 0x4146f4
cmp cx, 0x29
je 0x4146f4
cmp word [esi + 0x90], 0x28
jne 0x414691
cmp dword [esi + 0x94], ebp
je 0x4146f4
movzx ecx, cx
add ecx, 0xffffffd3
xor eax, eax
cmp ecx, 0x46
ja case.0x4146a5.46
movzx ecx, byte [ecx + 0x4148ec]
jmp dword [ecx*4 + 0x4148d4]
mov eax, 8
test edi, edi
je 0x4146e6
not eax
mov ecx, esi
and ebx, eax
call fcn.004113a0
jmp 0x414656
mov eax, ebp
jmp case.0x4146a5.46
mov eax, 2
jmp case.0x4146a5.46
mov eax, 4
jmp case.0x4146a5.46
not eax
mov ecx, esi
mov edi, ebp
and ebx, eax
call fcn.004113a0
jmp 0x414656
mov ecx, esi
or ebx, eax
call fcn.004113a0
jmp 0x414656
movzx eax, word [esi + 0x90]
cmp ax, 0x3a
je 0x41473d
cmp word [esi + 0x90], 0x28
jne 0x414713
cmp dword [esi + 0x94], ebp
je 0x414737
mov edx, dword [esp + 0x3c]
push 0
mov ecx, esi
mov dword [edx], ebx
call fcn.00411440
mov ecx, esi
mov edi, eax
call fcn.004113a0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
cmp ax, 0x3a
jne 0x414744
mov ecx, esi
call fcn.004113a0
push ebx
mov ecx, esi
call fcn.00413bc0
mov edi, eax
mov ecx, esi
call fcn.004113a0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4
push 0x18
call fcn.0049f1a2
mov ebx, dword [esp + 0x40]
xor ebp, ebp
add esp, 4
cmp eax, ebp
je 0x414795
mov ecx, dword [ebx]
mov dword [eax], vtable.CListElxT_0_.0
and ecx, 0x10
mov dword [eax + 0xc], ebp
mov dword [eax + 4], vtable.CBufferT_class_ElxInterface__.0
mov dword [eax + 0x10], ebp
mov dword [eax + 8], ebp
mov dword [eax + 0x14], ecx
jmp 0x414797
xor eax, eax
push eax
mov ecx, esi
call fcn.0040e0e0
inc dword [esi + 8]
mov edi, dword [esi + 8]
push 0x1c
mov dword [esp + 0x40], eax
call fcn.0049f1a2
add esp, 4
cmp eax, ebp
je 0x4147dd
mov ecx, dword [ebx]
mov dword [eax], vtable.CBracketElxT_wchar_t_.0
shr ecx, 4
and ecx, 1
mov dword [eax + 0x14], ebp
mov dword [eax + 0xc], vtable.CBufferT_wchar_t_.0
mov dword [eax + 0x18], ebp
mov dword [eax + 0x10], ebp
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
jmp 0x4147df
xor eax, eax
mov ebp, dword [esp + 0x3c]
push eax
mov ecx, esi
add ebp, 4
call fcn.0040e0e0
push eax
mov ecx, ebp
call fcn.0040e980
mov eax, dword [ebx]
push eax
mov ecx, esi
call fcn.00413bc0
push eax
mov ecx, ebp
call fcn.0040e980
push 0x1c
call fcn.0049f1a2
add esp, 4
test eax, eax
je 0x414840
mov ecx, dword [ebx]
shr ecx, 4
not ecx
and ecx, 1
mov dword [eax], vtable.CBracketElxT_wchar_t_.0
xor edx, edx
mov dword [eax + 0x14], edx
mov dword [eax + 0xc], vtable.CBufferT_wchar_t_.0
mov dword [eax + 0x18], edx
mov dword [eax + 0x10], edx
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
jmp 0x414842
xor eax, eax
push eax
mov ecx, esi
call fcn.0040e0e0
push eax
mov ecx, ebp
call fcn.0040e980
push 0
push edi
lea ecx, [esi + 0x24]
call fcn.0040df40
mov ecx, dword [esi + 0x28]
mov ebx, dword [esp + 0x3c]
mov dword [ecx + edi*4], ebx
mov ecx, esi
call fcn.004113a0
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x28
ret 4