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

Disassembly:
sub esp, 0x78
mov eax, dword [esp + 0x80]
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x8c]
mov ebp, dword [edi]
mov ecx, dword [ebp + 8]
lea edx, [edi + 0x148]
mov dword [esp + 0x28], edx
lea edx, [eax + eax*4]
shl edx, 4
mov eax, dword [edx + edi + 0x320]
lea ebx, [edx + edi + 0x2e0]
mov edx, dword [edi + 4]
mov dword [esp + 0x24], eax
movzx eax, byte [ebx + 0x2c]
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp]
mov dword [esp + 0x3c], ecx
lea ecx, [eax + eax*4]
shl ecx, 4
lea eax, [ecx + edx + 8]
mov dword [esp + 0x40], eax
mov eax, dword [eax + 0x30]
lea edx, [edi + 0x44]
mov esi, eax
mov dword [esp + 0x80], ebx
mov dword [esp + 0x18], eax
call fcn.1000c190
mov ecx, dword [esp + 0x90]
not eax
and eax, dword [esp + 0x94]
not edx
and edx, dword [esp + 0x98]
mov dword [ebx + 0x48], eax
mov dword [ebx + 0x4c], edx
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x1c]
call fcn.10059c00
and eax, 1
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
test byte [eax + 0x24], 0x40
je 0x10033ccd
test byte [edi + 0x22], 0x20
mov dword [esp + 0x68], 1
je 0x10033cd5
mov dword [esp + 0x68], 0
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10011490
mov dword [esp + 0x48], eax
mov dword [ebx + 0x10], eax
mov dword [ebx + 0xc], eax
mov eax, esi
call fcn.10011490
cmp byte [ebx + 0x2c], 0
mov dword [esp + 0x50], eax
mov dword [ebx + 0x18], eax
jbe 0x10033d1c
mov ecx, dword [esp + 0x40]
test byte [ecx + 0x24], 8
je 0x10033d1c
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
push 0x17
xor ecx, ecx
mov dword [ebx], eax
call fcn.10011470
add esp, 4
mov edx, dword [esp + 0x40]
mov ecx, dword [edx + 0x28]
test cl, 4
je 0x10033d58
mov esi, dword [esp + 0x14]
mov eax, edx
mov edi, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
push eax
push 0
push edi
push 0x11
call fcn.100113f0
mov eax, dword [esp + 0x58]
push 0x14
mov ecx, edi
call fcn.10011470
add esp, 0x14
mov byte [ebx + 0x2d], 0xe
jmp 0x10034c55
mov esi, dword [esp + 0x24]
mov edx, dword [esi + 0x24]
test edx, 0x400
je 0x10033eae
mov ecx, esi
movzx edi, word [ecx + 0x28]
mov eax, ebp
mov dword [esp + 0x78], edi
call fcn.10009b50
lea esi, [edi + 2]
mov ecx, ebp
mov dword [esp + 0x74], esi
call fcn.10009dc0
mov edx, dword [ebx + 0xc]
xor esi, esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x68], edx
test edi, edi
jle 0x10033ded
add eax, 2
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x30]
mov eax, dword [edx + esi*4]
test eax, eax
je 0x10033de4
test byte [eax + 0x12], 1
mov ecx, dword [esp + 0x44]
push ecx
je 0x10033dd5
mov edx, dword [esp + 0x20]
push edx
push esi
push ebx
push eax
push ebp
call fcn.100146c0
mov eax, dword [ebx + 0x10]
add esp, 0x18
mov dword [esp + 0x68], eax
jmp 0x10033de4
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
push eax
push ebp
call fcn.1004c470
add esp, 0xc
inc dword [esp + 0x44]
inc esi
cmp esi, edi
jl 0x10033da2
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x48]
mov ecx, dword [ecx + 0x18]
mov esi, dword [esp + 0x14]
push 0x17
call fcn.10011470
mov eax, dword [esp + 0x4c]
inc eax
push 0x17
mov ecx, edi
call fcn.10011470
mov esi, dword [esp + 0x2c]
movzx edx, byte [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x20]
neg edx
sbb edx, edx
and edx, 0xfffffff7
add edx, 0xfffffffe
push edx
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x7c]
push 0xc
push edx
call fcn.10015ec0
mov byte [esi + 0x1c], 0
add esp, 0x1c
xor esi, esi
test edi, edi
jle 0x10033e7e
mov edi, edi
cmp esi, 0x10
jge 0x10033e7e
mov eax, dword [esp + 0x24]
mov dx, word [eax + 0x1e]
mov cx, si
shr dx, cl
test dl, 1
je 0x10033e79
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx + esi*4]
mov edi, ebx
call fcn.1000bd00
mov edi, dword [esp + 0x78]
inc esi
cmp esi, edi
jl 0x10033e50
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov byte [ebx + 0x2d], 0x9a
mov dword [ebx + 0x30], edx
call fcn.10007940
mov esi, dword [esp + 0x74]
mov ecx, dword [esp + 0x48]
mov dword [ebx + 0x34], eax
mov eax, ebp
call fcn.10009df0
call fcn.10009b60
jmp 0x10034c58
mov eax, edx
and eax, 0x100
je 0x10033f38
test dl, 5
je 0x10033f38
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
inc dword [ebp + 0x48]
mov esi, dword [ebp + 0x48]
mov ecx, dword [esp + 0x1c]
push esi
push ecx
push 0
push ebx
push eax
push ebp
call fcn.100146c0
mov edi, eax
add esp, 0x18
cmp edi, esi
je 0x10033eeb
mov edx, ebp
call fcn.10009d90
mov eax, dword [ebx + 0x10]
mov esi, dword [esp + 0x14]
push 0x26
mov ecx, edi
mov dword [esp + 0x44], eax
call fcn.10011470
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
push edi
push edx
push eax
push 0x49
call fcn.100113f0
mov ecx, 1
mov eax, ebp
call fcn.10009bf0
mov ecx, dword [esp + 0x2c]
push edi
push 0xffffffffffffffff
push ecx
mov edx, ebp
call fcn.10009a00
add esp, 0x20
mov byte [ebx + 0x2d], 0x9f
jmp 0x10034c58
test eax, eax
je 0x10034103
test dl, 2
je 0x10034103
xor edi, edi
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x34], 0x9f
mov dword [esp + 0x68], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], ecx
test dl, 0x20
je 0x10033f74
mov eax, dword [esi + 0x30]
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
lea eax, [edi + 1]
test dl, 0x10
je 0x10033f83
mov edx, dword [esi + 0x30]
mov edi, dword [edx + eax*4]
mov dword [esp + 0x38], edi
cmp dword [esp + 0x1c], 0
je 0x10033f98
mov eax, ecx
mov ecx, edi
mov edi, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x38], edi
test ecx, ecx
je 0x10034014
mov eax, dword [esp + 0x40]
mov esi, dword [eax]
mov edx, dword [esi + 0x10]
lea ecx, [esp + 0x78]
push ecx
push edx
mov edi, ebp
mov byte [esp + 0x4c], 0x42
mov byte [esp + 0x4d], 0x40
mov byte [esp + 0x4e], 0x3f
mov byte [esp + 0x4f], 0x41
call fcn.10019e60
movzx edx, byte [esi]
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edi, eax
mov eax, dword [esp + 0x50]
push edi
push eax
movzx eax, byte [esp + edx + 4]
push ecx
push eax
call fcn.100113f0
add esp, 0x18
mov ecx, 1
mov eax, ebp
call fcn.10009bf0
mov esi, dword [esp + 0x78]
mov edx, ebp
call fcn.10009d90
mov eax, dword [esp + 0x40]
mov edi, ebx
call fcn.1000bd00
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
jmp 0x10034037
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x14]
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffd
add ecx, 0x6d
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.10011470
add esp, 4
test edi, edi
je 0x10034092
mov edi, dword [edi]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov edx, dword [edi + 0x10]
push eax
push edx
push ebp
mov dword [esp + 0x74], eax
call fcn.1004c470
mov al, byte [edi]
add esp, 0xc
cmp al, 0x52
je 0x10034072
cmp al, 0x50
je 0x10034072
xor eax, eax
cmp dword [esp + 0x1c], eax
setne al
lea eax, [eax + eax + 0x50]
mov dword [esp + 0x34], eax
jmp 0x10034083
xor ecx, ecx
cmp dword [esp + 0x1c], ecx
sete cl
lea ecx, [ecx + ecx + 0x51]
mov dword [esp + 0x34], ecx
mov eax, dword [esp + 0x38]
mov edi, ebx
call fcn.1000bd00
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10007940
cmp dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x18]
sete dl
add dl, 7
cmp dword [esp + 0x34], 0x9f
mov byte [ebx + 0x2d], dl
mov dword [ebx + 0x30], ecx
mov dword [ebx + 0x34], eax
je 0x10034c58
inc dword [ebp + 0x48]
mov edi, dword [ebp + 0x48]
push 0x68
mov eax, edi
call fcn.10011470
mov edx, dword [esp + 0x1c]
push edi
push 0xffffffffffffffff
push edx
mov edx, ebp
call fcn.10009a00
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x44]
push edi
push eax
push ecx
push edx
call fcn.100113f0
add esp, 0x20
mov dl, 0x53
mov eax, esi
call fcn.100079b0
jmp 0x10034c58
test edx, 0x200
je 0x10034659
movzx eax, word [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x20], eax
xor eax, eax
test byte [edi + 0x22], 1
mov dword [esp + 0x44], ecx
mov ecx, dword [ebx + 8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov byte [esp + 0x4c], al
mov byte [esp + 0x12], al
mov byte [esp + 0x13], al
mov dword [esp + 0x48], ecx
je 0x1003415f
cmp byte [edi + 0x24], al
jle 0x1003415f
mov ecx, dword [esp + 0x44]
mov cx, word [ecx + 0x2e]
cmp cx, word [esp + 0x20]
jbe 0x1003415f
mov byte [esp + 0x12], 1
mov eax, 1
movzx edi, word [esp + 0x20]
mov ecx, edi
test dl, 0x20
je 0x1003417b
mov eax, dword [esi + 0x30]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x30], eax
inc ecx
mov eax, 1
test dl, 0x10
je 0x1003420a
mov edx, dword [esi + 0x30]
mov ecx, dword [edx + ecx*4]
mov edx, pe_nt_image_headers32
mov eax, 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x78], eax
test word [ecx + 0x14], dx
je 0x100341df
inc dword [ebp + 0x48]
mov esi, dword [ebp + 0x48]
mov eax, dword [esp + 0x44]
mov dword [ebx + 0x24], esi
mov ecx, dword [eax + 0x1c]
xor edx, edx
cmp byte [edi + ecx], 1
mov eax, esi
mov esi, dword [esp + 0x14]
sete dl
push 0x17
xor edx, dword [esp + 0x20]
mov ecx, edx
call fcn.10011470
add esp, 4
mov eax, esi
call fcn.10007940
mov dword [ebx + 0x28], eax
mov eax, dword [esp + 0x78]
cmp dword [esp + 0x30], 0
jne 0x1003420a
mov edx, dword [esp + 0x44]
mov ecx, dword [edx + 4]
movsx ecx, word [ecx + edi*2]
test ecx, ecx
jl 0x1003420a
mov edx, dword [edx + 0xc]
mov edx, dword [edx + 4]
lea ecx, [ecx + ecx*2]
cmp byte [edx + ecx*8 + 0x14], 0
jne 0x1003420a
mov byte [esp + 0x12], 1
mov esi, dword [esp + 0x1c]
lea ecx, [esp + 0x2c]
push ecx
push eax
push esi
push ebx
push ebp
call fcn.100185d0
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
add esp, 0x14
test eax, eax
je 0x10034232
mov dl, byte [edi + eax]
mov byte [esp + 0x4c], dl
mov eax, dword [ebx + 0x10]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x40], eax
movzx eax, word [ecx + 0x2e]
cmp word [esp + 0x20], ax
jae 0x10034257
mov ecx, dword [ecx + 0x1c]
xor edx, edx
cmp byte [edi + ecx], dl
sete dl
cmp esi, edx
je 0x10034262
test esi, esi
je 0x10034283
cmp ax, word [esp + 0x20]
jne 0x10034283
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x34], ecx
mov cl, byte [esp + 0x12]
mov esi, eax
mov dword [esp + 0x30], esi
mov byte [esp + 0x12], 0
mov byte [esp + 0x13], cl
jmp 0x10034287
mov esi, dword [esp + 0x30]
xor ecx, ecx
mov al, 0x28
cmp esi, ecx
je 0x10034298
mov dword [esp + 0x58], ecx
test byte [esi + 0x12], al
je 0x100342a0
mov dword [esp + 0x58], 1
mov edx, dword [esp + 0x34]
cmp edx, ecx
je 0x100342b1
mov dword [esp + 0x5c], ecx
test byte [edx + 0x12], al
je 0x100342b9
mov dword [esp + 0x5c], 1
cmp esi, ecx
jne 0x100342c8
mov dword [esp + 0x54], ecx
cmp word [esp + 0x20], cx
jbe 0x100342d0
mov dword [esp + 0x54], 1
mov dword [esp + 0x20], edi
cmp esi, ecx
je 0x1003437e
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
mov esi, dword [eax + 0x10]
mov ecx, dword [esp + 0x38]
lea eax, [edi + ecx]
push eax
push esi
push ebp
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], eax
call fcn.1004c470
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x3c]
push ebx
push edx
call fcn.1000bd70
add esp, 0x14
mov eax, esi
call fcn.100097d0
test eax, eax
je 0x10034339
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x14]
push 0x4c
call fcn.10011470
mov esi, dword [esp + 0x78]
add esp, 4
cmp dword [esp + 0x2c], 0
je 0x10034378
mov eax, dword [esp + 0x2c]
movzx ecx, byte [edi + eax]
push ecx
mov eax, esi
call fcn.10016d00
add esp, 4
cmp al, 0x41
jne 0x1003435e
mov edx, dword [esp + 0x2c]
mov byte [edi + edx], al
mov eax, dword [esp + 0x2c]
mov dl, byte [edi + eax]
mov ecx, esi
call fcn.10009880
test eax, eax
je 0x10034378
mov ecx, dword [esp + 0x2c]
mov byte [edi + ecx], 0x41
inc dword [esp + 0x20]
jmp 0x100343b1
cmp byte [esp + 0x12], 0
je 0x100343b1
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
lea eax, [edi + edx]
push 0x1a
xor ecx, ecx
call fcn.10011470
mov eax, 1
add esp, 4
add dword [esp + 0x20], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], eax
movzx eax, byte [esp + 0x12]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
mov ecx, esi
sub ecx, eax
mov eax, dword [esp + 0x2c]
push ecx
push edx
push ebp
call fcn.10014650
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
push esi
push eax
lea eax, [edx + ecx*2]
mov ecx, dword [esp + 0x30]
movzx edx, byte [ecx + eax*2 + 0x1005da74]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x54]
push edx
push eax
mov eax, dword [esp + 0x54]
call fcn.10015fa0
add esp, 0x1c
cmp dword [esp + 0x34], 0
mov dword [esp + 0x20], edi
je 0x100344a8
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx]
mov eax, dword [esp + 0x38]
mov esi, dword [edx + 0x10]
add edi, eax
mov ecx, 1
mov eax, ebp
mov dword [esp + 0x78], esi
call fcn.10009b10
push edi
push esi
push ebp
call fcn.1004c470
mov ecx, dword [esp + 0x20]
push ebx
push ecx
mov ecx, dword [esp + 0x48]
call fcn.1000bd70
add esp, 0x14
mov eax, esi
call fcn.100097d0
test eax, eax
je 0x1003446c
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
push 0x4c
mov ecx, edi
call fcn.10011470
mov esi, dword [esp + 0x7c]
add esp, 4
mov edx, dword [esp + 0x4c]
push edx
mov eax, esi
call fcn.10016d00
add esp, 4
cmp al, 0x41
je 0x1003449e
mov dl, byte [esp + 0x4c]
mov ecx, esi
call fcn.10009880
test eax, eax
jne 0x1003449e
push 1
push edi
push ebp
lea eax, [esp + 0x58]
call fcn.10014650
add esp, 0xc
inc dword [esp + 0x20]
mov edi, dword [esp + 0x20]
jmp 0x100344ce
cmp byte [esp + 0x13], 0
je 0x100344ce
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
add eax, edi
push 0x1a
xor ecx, ecx
call fcn.10011470
add esp, 4
mov dword [esp + 0x5c], 0
inc edi
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
call fcn.10001ed0
mov ecx, dword [esp + 0x14]
mov eax, ecx
call fcn.10007940
mov dword [ebx + 0x34], eax
test edi, edi
je 0x10034515
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x5c]
push edi
push edx
mov edx, dword [esp + 0x24]
movzx eax, byte [eax + edx*2 + 0x1005da7c]
push eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x50]
call fcn.10015fa0
add esp, 0x10
mov eax, dword [esp + 0x30]
mov edi, ebx
call fcn.1000bd00
mov eax, dword [esp + 0x34]
call fcn.1000bd00
cmp dword [esp + 0x68], 0
jne 0x10034615
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0xc]
test byte [eax + 0x2a], 0x20
jne 0x1003457c
inc dword [ebp + 0x48]
mov edi, dword [ebp + 0x48]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x14]
push 0x71
mov eax, edi
call fcn.10011470
mov edx, dword [esp + 0x1c]
push edi
push 0xffffffffffffffff
push edx
mov edx, ebp
call fcn.10009a00
mov ecx, dword [esp + 0x28]
push 0x43
mov eax, edi
call fcn.10011470
add esp, 0x14
jmp 0x10034615
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x48]
je 0x10034615
call fcn.1000a180
movzx esi, word [eax + 0x2e]
mov ecx, ebp
mov dword [esp + 0x40], eax
call fcn.10009dc0
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
xor edx, edx
xor edi, edi
cmp dx, word [eax + 0x2e]
jae 0x100345f0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x40]
lea edx, [edi + ecx]
mov ecx, dword [eax + 4]
mov si, word [ecx + edi*2]
push edx
mov edx, dword [esp + 0x48]
call fcn.1000a1a0
mov esi, dword [esp + 0x18]
movsx edx, ax
mov eax, dword [esp + 0x4c]
push edx
push eax
push 0x2f
call fcn.100113f0
mov ecx, dword [esp + 0x50]
movzx edx, word [ecx + 0x2e]
inc edi
add esp, 0x10
cmp edi, edx
jl 0x100345b0
mov eax, dword [esp + 0x40]
movzx ecx, word [eax + 0x2e]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x54]
push edx
push 0x45
push eax
mov eax, dword [esp + 0x78]
call fcn.10015fa0
add esp, 0x10
mov eax, dword [esp + 0x24]
test dword [eax + 0x24], 0x1000
je 0x10034628
mov byte [ebx + 0x2d], 0x9f
jmp 0x10034636
cmp dword [esp + 0x1c], 0
sete cl
add cl, 7
mov byte [ebx + 0x2d], cl
mov edx, dword [esp + 0x48]
mov dword [ebx + 0x30], edx
mov cl, byte [eax + 0x26]
and cl, 1
mov byte [ebx + 0x2e], cl
test byte [eax + 0x24], 0xf
jne 0x10034c58
mov byte [ebx + 0x2f], 1
jmp 0x10034c58
test edx, 0x2000
je 0x10034c19
mov eax, dword [ebp + 0x44]
inc dword [ebp + 0x48]
mov edx, dword [ebp + 0x48]
mov dword [esp + 0x70], eax
inc eax
xor ecx, ecx
mov dword [ebp + 0x44], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x64], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x60], ecx
call fcn.10011490
mov edx, dword [esi + 0x30]
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax + 0x10]
mov eax, dword [edx]
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov byte [ebx + 0x2d], 0x10
mov dword [ebx + 0x30], ecx
mov al, byte [edi + 0x29]
cmp al, 1
jbe 0x10034790
mov esi, dword [esp + 0x3c]
movzx eax, al
sub eax, dword [esp + 0x90]
push 0
dec eax
lea edx, [eax + eax*4]
shl edx, 4
add edx, 0x58
push edx
mov dword [esp + 0x64], eax
call fcn.1000e2b0
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x10034715
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x98]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret
mov al, byte [esp + 0x5c]
mov esi, dword [esp + 0x40]
inc al
movzx ecx, al
mov eax, dword [esp + 0x1c]
mov dword [eax + 4], ecx
mov dword [eax], ecx
lea edi, [eax + 8]
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x8c]
mov edx, dword [ecx + 4]
add edx, 8
cmp dword [esp + 0x5c], 1
jl 0x10034797
mov ecx, dword [esp + 0x5c]
add eax, 0x58
mov dword [esp + 0x54], eax
lea eax, [ebx + 0x7c]
mov dword [esp + 0x58], eax
mov dword [esp + 0x68], ecx
nop
mov eax, dword [esp + 0x58]
movzx eax, byte [eax]
mov edi, dword [esp + 0x54]
lea esi, [eax + eax*4]
shl esi, 4
mov eax, 0x50
add dword [esp + 0x58], eax
add dword [esp + 0x54], eax
add esi, edx
sub dword [esp + 0x68], 1
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
jne 0x10034760
jmp 0x10034797
mov ecx, dword [edi + 4]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x8c]
test byte [edx + 0x22], 8
jne 0x10034803
mov eax, dword [esp + 0x38]
test byte [eax + 0x2a], 0x20
jne 0x100347ca
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov esi, dword [esp + 0x14]
push 0x1a
xor ecx, ecx
mov dword [esp + 0x38], eax
call fcn.10011470
add esp, 4
jmp 0x100347f9
call fcn.1000a180
mov ecx, dword [ebp + 0x44]
mov esi, dword [esp + 0x14]
lea edx, [ecx + 1]
mov edi, eax
mov dword [ebp + 0x44], edx
movzx eax, word [edi + 0x2e]
push 0x39
mov dword [esp + 0x38], ecx
call fcn.10011470
add esp, 4
mov ecx, edi
mov eax, ebp
call fcn.10030f60
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x64]
mov esi, dword [esp + 0x14]
push 0x17
xor ecx, ecx
call fcn.10011470
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x88], eax
mov eax, dword [ecx + 0xc]
add esp, 4
cmp eax, 1
jle 0x100348bb
mov dword [esp + 0x68], 0
test eax, eax
jle 0x100348bb
xor edi, edi
mov edx, dword [ecx + 0x14]
lea eax, [edi + edx]
mov edx, dword [eax]
cmp eax, dword [esp + 0x44]
je 0x1003488c
test byte [edx + 4], 1
jne 0x1003488c
mov eax, dword [ecx + 0x14]
add eax, edi
test byte [eax + 0x14], 2
jne 0x1003488c
mov esi, 0x1fff
test word [eax + 0x12], si
je 0x1003488c
mov esi, dword [esp + 0x3c]
push 0
push edx
push esi
call fcn.10019dd0
mov ecx, dword [esp + 0x54]
push ecx
call fcn.10016f70
mov ecx, dword [esp + 0x38]
add esp, 0x10
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x68]
inc eax
add edi, 0x30
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x68], eax
jl 0x10034840
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x100348bb
push 0
push 0
push ebp
mov eax, 0x48
call fcn.1001f7e0
add esp, 0xc
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x24]
xor edi, edi
cmp dword [edx + 0xc], edi
mov dword [esp + 0x54], 0xf0
mov dword [esp + 0x2c], edi
jle 0x10034b8c
mov dword [esp + 0x68], edi
lea ebx, [ebx]
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x14]
add eax, dword [esp + 0x68]
mov ecx, dword [eax + 8]
cmp ecx, dword [esp + 0x18]
je 0x10034903
mov edx, 0x400
test word [eax + 0x12], dx
je 0x10034b6f
mov ecx, dword [esp + 0x48]
mov eax, dword [eax]
mov dword [esp + 0x30], 0
test ecx, ecx
je 0x10034920
test byte [eax + 4], 1
jne 0x10034920
mov dword [ecx + 0xc], eax
mov eax, ecx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x1c]
push ecx
push edx
push 0
push 0
push eax
push esi
push ebp
call fcn.1003e290
mov edi, eax
add esp, 0x1c
mov dword [esp + 0x6c], edi
test edi, edi
je 0x10034b6f
movzx eax, byte [ebx + 0x2c]
mov ecx, dword [esp + 0x90]
push 0
push eax
push ecx
lea edx, [edi + 0x2e0]
push esi
mov ecx, ebp
call fcn.10024f90
mov edx, dword [esp + 0x9c]
add esp, 0x10
test byte [edx + 0x22], 8
jne 0x10034ade
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov esi, dword [esp + 0x2c]
dec ecx
cmp esi, ecx
jne 0x1003498f
or esi, 0xffffffff
mov edx, dword [esp + 0x38]
test byte [edx + 0x2a], 0x20
mov dword [esp + 0x58], esi
jne 0x100349d6
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
push 0
push eax
push ecx
push 0xffffffffffffffff
push edx
mov edi, ebp
call fcn.1002b790
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x28]
push esi
push ecx
push 0x83
push edx
xor ecx, ecx
call fcn.10015fa0
add esp, 0x24
mov dword [esp + 0x30], eax
jmp 0x10034ada
mov eax, edx
call fcn.1000a180
movzx esi, word [eax + 0x2e]
mov ecx, ebp
mov dword [esp + 0x7c], eax
mov dword [esp + 0x4c], esi
call fcn.10009dc0
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], 0
test esi, esi
jle 0x10034a59
mov esi, dword [esp + 0x5c]
mov ebx, eax
jmp 0x10034a10
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax + 4]
movsx eax, word [ecx + esi*2]
mov edx, dword [esp + 0x18]
push 0
push ebx
push edx
push eax
mov eax, dword [esp + 0x48]
push eax
mov edi, ebp
call fcn.1002b790
mov ecx, eax
add esp, 0x14
cmp ecx, ebx
je 0x10034a4d
mov esi, dword [esp + 0x14]
push 0x20
mov eax, ebx
call fcn.10011470
mov esi, dword [esp + 0x60]
add esp, 4
inc esi
inc ebx
cmp esi, dword [esp + 0x4c]
mov dword [esp + 0x5c], esi
jl 0x10034a10
mov esi, dword [esp + 0x58]
test esi, esi
je 0x10034a88
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
push ecx
push edx
push 0x46
push eax
mov eax, dword [esp + 0x50]
xor ecx, ecx
call fcn.10015fa0
add esp, 0x10
mov dword [esp + 0x30], eax
test esi, esi
jl 0x10034ac4
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x14]
push edi
push ecx
push edx
push 0x31
call fcn.100113f0
mov eax, dword [esp + 0x44]
push 0
push edi
push eax
push 0x6f
call fcn.100113f0
add esp, 0x20
cmp dword [esp + 0x58], 0
je 0x10034ac4
mov dl, 0x10
mov eax, esi
call fcn.100079b0
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov eax, ebp
call fcn.10009df0
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x14]
push 0xf
call fcn.10011470
add esp, 4
cmp dword [esp + 0x30], 0
je 0x10034b08
mov ecx, dword [esp + 0x30]
push ecx
call fcn.100079d0
add esp, 4
cmp byte [edi + 0x27], 0
je 0x10034b16
mov dword [esp + 0x78], 1
mov eax, dword [edi + 0x320]
test dword [eax + 0x24], 0x200
je 0x10034b5e
cmp dword [esp + 0x2c], 0
je 0x10034b35
mov edx, dword [esp + 0x20]
cmp dword [eax + 0x1c], edx
jne 0x10034b5e
mov ecx, dword [esp + 0x38]
test byte [ecx + 0x2a], 0x20
je 0x10034b4d
mov edx, dword [eax + 0x1c]
mov ecx, dword [edx + 0x34]
and cl, 3
cmp cl, 2
je 0x10034b5e
mov edx, dword [eax + 0x1c]
or dword [esp + 0x54], 0x1000
mov dword [esp + 0x20], edx
jmp 0x10034b66
mov dword [esp + 0x20], 0
push edi
call fcn.10014e50
add esp, 4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x68], 0x30
inc eax
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x2c], eax
jl 0x100348e0
xor edi, edi
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x38], eax
cmp eax, edi
je 0x10034b9e
mov edx, dword [esp + 0x70]
mov dword [ebx + 8], edx
mov eax, dword [esp + 0x48]
cmp eax, edi
je 0x10034bb7
push eax
mov dword [eax + 0xc], edi
mov eax, dword [esp + 0x40]
push eax
call fcn.10012ab0
add esp, 8
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10007940
push eax
mov eax, dword [esp + 0x88]
mov ecx, esi
call fcn.10007950
mov eax, dword [ebx + 0xc]
push 0xe
xor ecx, ecx
call fcn.10011470
mov ecx, dword [esp + 0x7c]
push ecx
mov ecx, esi
call fcn.10007900
mov edx, dword [esp + 0x98]
add esp, 0xc
cmp byte [edx + 0x29], 1
jbe 0x10034c06
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
call fcn.10001ed0
cmp dword [esp + 0x78], edi
jne 0x10034c58
mov eax, dword [esp + 0x44]
mov edi, ebx
call fcn.1000bd00
jmp 0x10034c58
test cl, 8
je 0x10034c24
mov byte [ebx + 0x2d], 0x9f
jmp 0x10034c58
mov eax, dword [esp + 0x1c]
mov cl, byte [eax + 0x1005da80]
mov esi, dword [esp + 0x14]
mov byte [ebx + 0x2d], cl
mov ecx, dword [esp + 0x18]
mov dword [ebx + 0x30], ecx
movzx edx, byte [eax + 0x1005da84]
mov eax, dword [esp + 0x48]
push edx
call fcn.10011470
add esp, 4
inc eax
mov byte [ebx + 0x2f], 1
mov dword [ebx + 0x34], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 0x14]
mov dword [esp + 0x48], eax
test eax, eax
jle 0x10034d0d
mov edi, edi
movzx edx, word [edi + 0x14]
xor esi, esi
test dl, 6
jne 0x10034cf5
mov eax, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
and eax, dword [ebx + 0x48]
and ecx, dword [ebx + 0x4c]
or eax, ecx
je 0x10034c98
mov eax, dword [esp + 0x8c]
mov byte [eax + 0x27], 1
jmp 0x10034cf5
cmp dword [ebx], 0
mov eax, dword [edi]
mov dword [esp + 0x84], eax
je 0x10034cac
test byte [eax + 4], 1
je 0x10034cf5
test edx, 0x200
je 0x10034cce
mov eax, dword [ebx + 0x24]
mov esi, dword [esp + 0x14]
mov ecx, 0x2e
call fcn.10011460
mov esi, eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x50]
push 0x10
push ecx
push eax
push ebp
call fcn.10047d60
add esp, 0x10
test esi, esi
je 0x10034cf0
push esi
mov esi, dword [esp + 0x18]
call fcn.100079d0
add esp, 4
or word [edi + 0x14], 4
mov eax, dword [esp + 0x48]
dec eax
add edi, 0x30
mov dword [esp + 0x48], eax
test eax, eax
jg 0x10034c70
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x14]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
test ecx, ecx
jle 0x10034e0d
test byte [eax + 0x14], 6
jne 0x10034df1
movzx ecx, word [eax + 0x12]
test cl, 0x82
je 0x10034df1
test ecx, 0x800
je 0x10034df1
mov edx, dword [eax + 8]
cmp edx, dword [esp + 0x18]
jne 0x10034df1
cmp dword [ebx], 0
jne 0x10034df1
mov eax, dword [esp + 0x44]
mov ecx, dword [eax]
mov edx, dword [esp + 0x98]
push 0
push 0x83
push edx
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xa0]
push ecx
push edx
mov edx, dword [esp + 0x3c]
call fcn.1002db50
mov edi, eax
add esp, 0x14
test edi, edi
je 0x10034df1
test byte [edi + 0x14], 4
jne 0x10034df1
mov esi, dword [esp + 0x3c]
push 0
push 0x30
call fcn.1000e2b0
add esp, 8
mov dword [esp + 0x78], eax
test eax, eax
je 0x10034df1
mov esi, dword [edi]
mov edi, eax
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + 0xc]
mov ecx, dword [esp + 0x50]
push 0x10
push ecx
push eax
push ebp
mov dword [eax + 0xc], edx
call fcn.10047d60
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x4c]
add esp, 0x10
call fcn.10001ed0
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
dec ecx
add eax, 0x30
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], eax
test ecx, ecx
jg 0x10034d23
cmp dword [ebx], 0
je 0x10034e83
mov esi, dword [esp + 0x14]
mov eax, esi
call fcn.10007940
mov dword [ebx + 0x1c], eax
mov eax, dword [ebx]
push 0x17
mov ecx, 1
call fcn.10011470
add esp, 4
mov eax, ebp
call fcn.10009bc0
mov edx, dword [esp + 0x28]
mov esi, dword [edx + 0x14]
xor edi, edi
mov eax, edx
cmp dword [eax + 0xc], edi
jle 0x10034e83
test byte [esi + 0x14], 6
jne 0x10034e76
mov eax, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
and eax, dword [ebx + 0x48]
and ecx, dword [ebx + 0x4c]
or eax, ecx
jne 0x10034e76
mov ecx, dword [esp + 0x50]
mov edx, dword [esi]
push 0x10
push ecx
push edx
push ebp
call fcn.10047d60
add esp, 0x10
or word [esi + 0x14], 4
mov eax, dword [esp + 0x28]
inc edi
add esi, 0x30
cmp edi, dword [eax + 0xc]
jl 0x10034e48
mov eax, dword [ebx + 0x48]
mov edx, dword [ebx + 0x4c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret